1

エンドユーザーが POST リクエストを行う可能性のある実行時間の長いプロセスを持つ API をコーディングしようとしています。

POST /things { "some":"json" }

実際の作成プロセスには時間がかかる場合があり、多くの場合キューに入れられます。数分かかる場合があります。その結果、何をいつ返すべきかわかりません。API がオブジェクトを作成するのに時間がかかった後に返される、通常の 201 プラス オブジェクトですか? これにより、クライアント側で問題が発生することはありませんか? 中間ステップなど、これを行うための他の標準的な方法はありますか?

それが役立つ場合は、API に Rails & Grape を使用しています。

4

1 に答える 1

1

Post-Redirect-Get パターンがニーズに合っているかどうかを検討してください。たとえば、クライアントがリクエストの進行状況を確認できる何らかのステータス ページに 303 リダイレクトを返すことができます。一般に、201+object は、クライアントがかなりの期間待たなければならない場合、適切な選択ではありません。これは、あまりにも多くのことがうまくいかない可能性があるためです (イライラや焦りから、ブラウザー ウィンドウを強制終了したり、更新したり、再送信したりした場合はどうなるでしょうか?)

于 2013-01-02T18:44:16.450 に答える