私は、次のデザインパターンに出くわしました非同期操作のためのRESTfulなAPI研究中:pendingOperation REST:HTTP 303は非同期操作に有害であると見なされますか?
GET uri:pendingOperation
リターン:
POST uri:longOperation
リターン:
- HTTP 202
- 場所:URIを:
- 操作が実行されている場合
- 進捗レポートを返します。
- 操作が完了している場合
- HTTP 303
- 場所:URI:operationResponse
GET uri:operationResponse
- 非同期の応答騒々しい操作
最後のステップは疑わしいです。非同期操作が
HTTP GET
の意味を持たないエラーコード(例えば、HTTP 409 ("Conflict")
)で完了したらどうなるかを考えてください。- URIに関連付けられた応答を指すように必要
HTTP 303
されていません。operationResponse:URIとは対照的に、pendingOperation? - このように
HTTP 303
を使用しているとは有害ですか?そうでない場合、なぜですか? - これが最善の方法ですか、それとも良い方法がありますか?
- 操作が実行されている場合