Sono in procinto di progettare un'API HTTP, sperando di renderla il più possibile RESTful.
Ci sono alcune azioni che la funzionalità si diffonde su poche risorse e che a volte devono essere annullate.
Ho pensato a me stesso, sembra uno schema di comando, ma come posso modellarlo in una risorsa?
Introdurrò una nuova risorsa chiamata XXAction, come DepositAction, che verrà creata tramite qualcosa di simile
POST /card/{card-id}/account/{account-id}/Deposit
AmountToDeposit=100, different parameters...
questo in realtà creerà una nuova DepositAction e attiverà il suo metodo Do / Execute. In questo caso, la restituzione di 201 stato HTTP creato indica che l'azione è stata eseguita correttamente.
Più tardi se un cliente desidera esaminare i dettagli dell'azione che può
GET /action/{action-id}
L'aggiornamento / PUT dovrebbe essere bloccato, suppongo, perché non è rilevante qui.
E per annullare l'azione, ho pensato di usare
DELETE /action/{action-id}
che in realtà chiamerà il metodo Annulla dell'oggetto pertinente e cambierà il suo stato.
Diciamo che sono contento di un solo Do-Undo, non ho bisogno di ripetere.
Questo approccio è ok?
Ci sono delle insidie, ragioni per non usarlo?
Questo è compreso dal POV dei client?