Ich bin dabei, eine HTTP-API zu entwerfen, die hoffentlich so restvoll wie möglich ist.
Es gibt einige Aktionen, die sich auf einige Ressourcen erstrecken und manchmal rückgängig gemacht werden müssen.
Ich dachte mir, das klingt wie ein Befehlsmuster, aber wie kann ich es in eine Ressource umwandeln?
Ich werde eine neue Ressource namens XXAction vorstellen, wie DepositAction, die durch etwas wie dieses erstellt wird
POST /card/{card-id}/account/{account-id}/Deposit
AmountToDeposit=100, different parameters...
Dadurch wird eine neue DepositAction erstellt und die Do / Execute-Methode aktiviert. In diesem Fall bedeutet die Rückgabe des HTTP-Status 201 Created, dass die Aktion erfolgreich ausgeführt wurde.
Wenn ein Kunde später die Aktionsdetails einsehen möchte, kann er dies
GET /action/{action-id}
Update / PUT sollte wohl gesperrt sein, da es hier nicht relevant ist.
Und um die Aktion rückgängig zu machen, dachte ich über die Verwendung von
DELETE /action/{action-id}
Dadurch wird die Undo-Methode des betreffenden Objekts aufgerufen und dessen Status geändert.
Angenommen, ich bin mit nur einem Do-Undo zufrieden. Ich muss nicht wiederholen.
Ist dieser Ansatz in Ordnung?
Gibt es irgendwelche Tücken, Gründe, es nicht zu benutzen?
Wird dies aus der Sicht der Kunden verstanden?