web-dev-qa-db-ja.com

Webサービスとメッセージキュー

私たちは、Webクライアントとモバイルクライアントが使用するWebサービス/ REST APIレイヤーの作成を検討しています。

ソリューションをより堅牢にするために、PUT、POST、およびPATCHからのコマンドをメッセージキューに配置することを検討しました。これは、コマンドが非同期で実行されることを意味します。

コマンドが非同期で実行されることを示すRESTful APIからの標準のHTTP応答はありますか?

編集する

実際、誰かがWebサービスレイヤーの背後にメッセージキューを置くことがどれほど賢明であるかについて考えているなら、私はそれらを聞いて興味があります。

4
David Brower

successfultaskを作成して、成功したことをすべて実行します。つまり、応答コードの2xxブロックを調べる必要があります。

このブロックでは、正解としてすぐに飛び出します。

202承認済み
リクエストは処理のために受け入れられましたが、処理は完了していません。処理が実際に行われるときに許可されない可能性があるため、要求は最終的に処理される場合と処理されない場合があります。

また、リソース(タスク)が作成された状況の201応答を確認することもできます。

201作成
リクエストが満たされ、新しいリソースが作成されました。

ただし、これは相互作用の非同期性を意味するものではなく、どこかに存在することを意味します。

6
user40980

メッセージの処理中に発生する可能性のあるエラーを報告する機会を逃します。これにより、サービスの利用者は、呼び出しが成功したかどうかを確認できなくなります。

1
Stefan Schmidt

200 OKを使用

提案する設定は、サービス指向アーキテクチャー(SOA)と共通です。非同期メッセージングを使用する場合、通常は次のようなフローになります。

--> Request
<-- Delivery acknowledgement
<-- Process acknowledgement
--> Delivery acknowledgement

配信確認の成功には200 Okを使用するのが一般的です。これはオンラインで広く文書化されていると思いますが、参照をすばやく確認しただけでは見つかりませんでした。

プロセス確認は、逆方向の別個のHTTPトランザクションであり、これにより、処理中のエラーを報告できます。

1
paj28