2

私はRubyonRailsを使用しており、HTTPコードのすべての微妙な点を理解して、アプリに標準を導入しようとしています。次のようなケースに直面しています。

会社と従業員の2つのテーブルを持つデータベースがあるとしましょう。

  • ユーザーが従業員のいない会社を削除しようとすると、その会社は削除され、サーバーはコード200を送信します。
  • ユーザーが従業員のいる会社を削除しようとしても、その会社は削除されず、サーバーはメッセージを送信します(「この会社にリンクされている従業員がいます...」)。この場合、サーバーはどのコードを送信する必要がありますか?私はHTTP4XXについて考えていましたが、私の意見では、これはクライアントエラーではありません。
4

2 に答える 2

3

409競合エラーコードを使用します。リクエストの競合が原因でリクエストを処理できなかったことを示します。

従業員がいなくなると、競合が削除され、削除が機能します。これは、クライアントからの競合する要求であるという意味で、クライアントエラーと考えることができます。

于 2013-01-11T14:24:16.463 に答える
-1

クライアントが従業員のいる会社でDELETEメソッドを使用することを許可されていない場合は、405メソッドを許可しないことをお勧めします。応答本文に理由の説明を含めます。

于 2013-01-11T14:25:20.120 に答える