1. ホーム
  2. rest

[解決済み] RESTでトランザクション?

2022-04-26 06:36:36

質問

次のようなユースケースをRESTでどのように実装するのか気になります。コンセプトモデルを崩さずに実現することは可能でしょうか?

1つのトランザクションの範囲内で、複数のリソースを読み込んだり、更新したりする。例えば、Bobの銀行口座からJohnの口座に100ドルを振り込むなど。

私の知る限り、これを実装する方法はズルズルしかありません。JohnまたはBobに関連するリソースにPOSTして、1つのトランザクションですべての操作を実行することができます。私の知る限り、これはRESTアーキテクチャを破壊しています。なぜなら、あなたは本質的に個々のリソースを操作するのではなく、POSTを通してRPCコールをトンネルしているからです。

解決するには?

RESTfulなショッピングバスケットのシナリオを考えてみましょう。 買い物かごは、概念的にはあなたのトランザクションラッパーです。 買い物かごに複数の商品を追加し、そのかごを送信して注文を処理するのと同じように、Bob の口座項目をトランザクションラッパーに追加し、Bill の口座項目をラッパーに追加することができます。 すべてのコンポーネントが揃ったら、トランザクションラッパーをPOST/PUTすることができます。