2012-02-23 4 views
17

私のRESTful APIクライアントでは、すでにデータベースに入っている情報を投稿しようとするかもしれませんが、これはエラーではなく、クライアントが無視することができます。重複が見つかった場合、REST POST要求に対する適切な応答ステータスコードは何ですか?

ここでは、409の競合と既に存在するオブジェクトを応答本体に戻しています。リクエストが原因リソースの現在の状態 との競合に完了することができませんでした

:私はので、それは間違ってだと感じています。このコードは、 のユーザーが競合を解決できる可能性があり、 が要求を再送信することが予想される状況でのみ許可されます。レスポンス本体は、ユーザが衝突の原因を認識するのに十分な情報を に含めるべきです(SHOULD)。 応答エンティティには、ユーザーまたはユーザーエージェントが問題を解決するのに十分な情報が含まれていることが理想的です。ただし、 は可能でない可能性があり、必須ではありません。 via restpatterns.org

と一般的には、409がよりPUTに関連付けられていること、らしいです。

この場合、正しい応答は何ですか?それは303かもしれませんその他と場所のヘッダーを見ますか?

答えて

14

正解があるかどうかわかりません。私たちは、それが重複リソースであるというメッセージとともに409を返しています。また、そのリソースにハイパーメディアも含まれています。あなたは400バッドリクエストを使用することもできますが、あまりにも一般的すぎるようです。私は303も働いているのを見ることができました。私はエラーがあったので、409と一緒に行ったことを示したいと思っていました。

関連する問題