97

サーバー側でエラーが発生したときに返すのが正しいかどうか疑問に思ってHTTP 200 OKいます(エラーの詳細は応答本文に含まれます)。

例:

  1. お送りしていますHTTP GET
  2. サーバー側で予期しないことが起こりました。
  3. サーバーはHTTP 200 OK、応答内にエラーのあるステータス コードを返します (例: {"status":"some error occurred"})

これは正しい動作ですか?ステータス コードを 200 以外に変更する必要がありますか?

4

7 に答える 7

13

ビジネス ロジック エラーを HTTP コードとして返したい場合でも、HTTP 200 を使用するのではなく、そのエラーに対して受け入れ可能な HTTP エラー コードはありません。

したがって、HTTP 200 はビジネス ロジック エラーに適しています。ただし、HTTP エラー コードでカバーされるすべてのエラーは、それらを使用する必要があります。

基本的に HTTP 200 は、どのサーバーがユーザーの要求を正しく処理するかを意味します (飛行機に座席がない場合、ユーザーの要求が正しく処理されたため問題ありません。飛行機で利用可能な座席数だけを返すことさえできるため、ビジネス ロジック エラーがまったくないか、ビジネス ロジックがクライアント側に存在する可能性があります (ビジネス ロジック エラーは抽象的な意味ですが、HTTP エラーはより明確です)。

于 2015-08-12T07:07:11.730 に答える