ユースケースの単純化ですが、顧客の注文を処理するための REST サービスを作成したいと考えています。
RPC の世界では、RPC エンドポイントを作成します
OrderProduct(CustomerID, ProductID, Quantity)
これは
- 注文 DB レコードを作成する
- Product DB レコードの利用可能な在庫を減らす
- ストックピッキング用のワークリスト テーブルにエントリを作成する
(私の実際のユースケースではありませんが、私がやっていることよりも理解しやすいです)
私の REST アプローチでは、Customer、Product、および Worklist の POST エンドポイントが既にありますが、3 つすべての呼び出しを 1 つのトランザクションで結合する必要があります。私の問題は、ワークリストへの挿入が何らかの理由で失敗した場合にロールバックできることです。
それでは、POST のみを公開する ProductOrder エンドポイントを作成することは適切でしょうか?
POST を処理するサービス内で、DB トランザクションを作成し、データベースと直接やり取りして、関心のある 3 つのテーブルを更新します。
私の緊張は周りにあります
- 既に公開したエンティティ エンドポイントを再利用しない。
- RPC タイプの呼び出しを処理するためだけにエンティティを発明する (したがって、POST のみを実装する)
ありがとう、アンディ