[解決済み] RESTでトランザクション?
2022-04-26 06:36:36
質問
次のようなユースケースをRESTでどのように実装するのか気になります。コンセプトモデルを崩さずに実現することは可能でしょうか?
1つのトランザクションの範囲内で、複数のリソースを読み込んだり、更新したりする。例えば、Bobの銀行口座からJohnの口座に100ドルを振り込むなど。
私の知る限り、これを実装する方法はズルズルしかありません。JohnまたはBobに関連するリソースにPOSTして、1つのトランザクションですべての操作を実行することができます。私の知る限り、これはRESTアーキテクチャを破壊しています。なぜなら、あなたは本質的に個々のリソースを操作するのではなく、POSTを通してRPCコールをトンネルしているからです。
解決するには?
RESTfulなショッピングバスケットのシナリオを考えてみましょう。 買い物かごは、概念的にはあなたのトランザクションラッパーです。 買い物かごに複数の商品を追加し、そのかごを送信して注文を処理するのと同じように、Bob の口座項目をトランザクションラッパーに追加し、Bill の口座項目をラッパーに追加することができます。 すべてのコンポーネントが揃ったら、トランザクションラッパーをPOST/PUTすることができます。
関連
-
[解決済み] SOAPとRESTの比較(相違点)
-
[解決済み] 検証失敗または重複が無効な場合のREST HTTPステータスコード
-
[解決済み] API のバージョン管理に関するベストプラクティス?[クローズド]
-
[解決済み] RESTとRESTfulの違いは何ですか?
-
[解決済み] RESTを理解する。動詞、エラーコード、認証
-
[解決済み] RESTアプリケーションはステートレスであることが前提である場合、セッションはどのように管理するのですか?
-
[解決済み】REST APIでのPUTメソッドとPATCHメソッドの使い分け 実生活でのシナリオ
-
[解決済み] リソースとエンドポイントの違いは何ですか?
-
[解決済み] HATEOAS(REST-architecture)の実例集 [終了しました]。
-
[解決済み] REST - ボディにIDを入れるかどうか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] リソースが既に存在する場合の POST に対する HTTP レスポンスコード
-
[解決済み] URLクエリパラメータを含むHTTP POST -- 良いアイデアかどうか?
-
[解決済み] cURLを使ってCookieを送信するには?
-
[解決済み] RESTのネストされたリソースのベストプラクティスは何ですか?
-
[解決済み] レスポンスコードが200または201で、内容がPOSTのリクエストを作成します。
-
[解決済み] HTTP DELETEでリソースを2回目に削除したときのステータスコード
-
[解決済み] リソースとエンドポイントの違いは何ですか?
-
[解決済み] RESTとは?若干の混乱【終了
-
[解決済み] HATEOAS(REST-architecture)の実例集 [終了しました]。
-
[解決済み] REST - ボディにIDを入れるかどうか?