Je suis en train de concevoir une API HTTP, je l'espère la rendre aussi RESTful que possible.
Il existe certaines actions dont la fonctionnalité est répartie sur quelques ressources et doit parfois être annulée.
Je me suis dit que cela ressemble à un modèle de commande, mais comment puis-je le modéliser en une ressource?
Je vais présenter une nouvelle ressource nommée XXAction, comme DepositAction, qui sera créée par quelque chose comme ça
POST /card/{card-id}/account/{account-id}/Deposit
AmountToDeposit=100, different parameters...
cela va en fait créer une nouvelle DepositAction et activer sa méthode Do / Execute. Dans ce cas, le retour d'un état HTTP 201 créé signifie que l'action a été exécutée avec succès.
Plus tard, si un client souhaite consulter les détails de l'action, il peut
GET /action/{action-id}
La mise à jour / PUT devrait être bloquée, je suppose, car elle n'est pas pertinente ici.
Et pour annuler l'action, j'ai pensé à utiliser
DELETE /action/{action-id}
qui appellera en fait la méthode Undo de l'objet concerné et changera son statut.
Disons que je suis content d'un seul Do-Undo, je n'ai pas besoin de refaire.
Cette approche est-elle correcte?
Y a-t-il des pièges, des raisons de ne pas l'utiliser?
Est-ce compris du POV des clients?