2017-09-14 8 views
-1

データベースの整合性のためにレコードをデータベースから削除できない場合、HttpDeleteアクションから返されるHttpステータスコードは何ですか?WebAPIから返されるHttpステータスコードレコードを削除できない場合のアクションの削除?

403 - 方法

409許可されていない - -

405禁断競合

+0

なぜスタックオーバーフローが "どの質問を使用する"ステータスコードでいっぱいになるのですか?あなた自身でそれを決めることはできませんか?あなたの研究は何を示しましたか? – CodeCaster

+0

https://stackoverflow.com/questions/33245268/whats-the-right-http-status-code-for-a-response-when-i-cant-perform-a-delete-d –

答えて

1

私の見解からは、HTTPコード409です。 RFCはこの具体的な状況について何も言わないだけでなく、それを拒否していません。

https://tools.ietf.org/html/rfc7231#section-6.5.8

409(競合)ステータスコードは、要求が原因ターゲット リソースの現在の状態との競合に 完了できなかったことを示しています。このコードは、ユーザーが を使用して競合を解決し、要求を再送信できる状況で使用されます。サーバSHOULD は、 が競合の原因を認識するのに十分な情報を含むペイロードを生成します。

出典: REST HTTP status code if DELETE impossible

そして、なぜ私は403と405がappropiateではないことだと思いますか?

  • - 禁止されています。それはパーミッションと関連しています。しかし、あなたが記述しているシナリオは、認証/承認後に発生します。
  • - 方法は許可されていません。これは、通常、エンドポイントによって公開される「オブジェクト」に関連し、X個の動詞を受け入れ、要求した動詞は利用できません。整合性チェックのような決定された状況でこのエラーを投げると、RESTfulロジックが混乱することになります。
関連する問題