私はHTTP APIの設計を進めており、できればできるだけRESTfulにするようにしています。
機能がいくつかのリソースに広がるアクションがいくつかあり、いつか元に戻す必要があります。
これはコマンドパターンのように思えますが、どのようにリソースにモデル化できますか?
DepositActionのようなXXActionという名前の新しいリソースを紹介します。
POST /card/{card-id}/account/{account-id}/Deposit
AmountToDeposit=100, different parameters...
これにより、実際に新しいDepositActionが作成され、そのDo / Executeメソッドがアクティブになります。この場合、201 Created HTTPステータスを返すことは、アクションが正常に実行されたことを意味します。
後でクライアントができるアクションの詳細を確認したい場合
GET /action/{action-id}
Update / PUTはここでは関係ないため、ブロックする必要があります。
そして、アクションを元に戻すために、私は
DELETE /action/{action-id}
実際に関連オブジェクトのUndoメソッドを呼び出し、そのステータスを変更します。
やり直しが1回だけで満足だとしましょう。やり直す必要はありません。
このアプローチは大丈夫ですか?
落とし穴、それを使用しない理由はありますか?
これはクライアントのPOVから理解されていますか?