は、だから私は、REST APIのPOSTは、私が返すべきか不足しているリソースと必要なフィールドを作成するために作られのHttpステータスコード400対412
を開発していますか?
400 - 不正な要求
OR
412 - 前提条件は
を失敗し、なぜ?
は、だから私は、REST APIのPOSTは、私が返すべきか不足しているリソースと必要なフィールドを作成するために作られのHttpステータスコード400対412
を開発していますか?
400 - 不正な要求
OR
412 - 前提条件は
を失敗し、なぜ?
使用400間違っている要求パラメータの場合。 If-*
要求ヘッダーの1つIf-Modified-Since
、If-Match
のような場合などは間違っている、412を使用してください。
なぜですか?これはRFCの言うところのものです。例えばIf-Match
仕様のこの抜粋を参照してください:
は、エンティティタグが一致のいずれも、または「*」が与えられ、何の現在のエンティティが存在しない場合は、サーバは要求されたメソッドを実行しないてはならない場合があり、412を返さなければなりません(Precondition Failed)応答が返されます。この動作は、PUTなどの更新メソッドが、クライアントが最後に取得した後に変更されたリソースを変更しないようにする場合に、最も便利です。
412は、サーバーがクライアントによって指定された条件を満たさない場合に使用されます。
あなたのケースでは、あなたはそれだけで不正な要求である400を使用する必要があります。
は、事前条件ヘッダ上のいくつかのexplainationのために、このlinkを参照してください。
一般的に、Etagヘッダーは、HTTPヘッダーのリソース を表す文字列です。 If-Matchが の前提条件のHTTPヘッダーであるリソースを要求します。送信したコードが と一致しない場合は、412が送信されます。
If-None-Matchは、 Etagがクライアントから送信されたものと異なる場合にのみ、サーバーが完全な応答を処理するように指示します。
なぜdownvote?答えは間違っていますか? – nunespascal
誰かが悪い一日を過ごしたと思う。それを無視して、システムにその仕事をさせてください:) – BalusC
それをバランスさせるためにupvoteを持ってください。 –
ステータスコード422を使用できます。希望しない場合は、400は正常です。
また、400の形式の間違った構文のためにリクエストを処理できなかったことも記載されています。 – Rob
このページは本当に助けになりました - http://odino.org/don-t-rape-http-if-none-match-the- 412-http-status-code/- コンテキストの 'PUT'リクエストを使用すると、特定のステータスコードを乱用するのはいつでも簡単なので、それが何であるかを理解しやすくなりました。 – Charlie