2

API 応答を作成するときに、要求の有効性を示すステータス コードを (手動で) 返すのに適した方法は次のうちどれですか。

1 - JSON 応答内に応答コードを埋め込む

{
  'status_code' => 200,
  'status_message' => 'OK',
  'data' => { ... }
}

2 - それとも、HTTP ヘッダー ステータス フィールドを変更した方が良いですか?

Request URL:http://somesite.com
Request Method:GET
Status Code: 200 (EDITING THIS ONE)

HTTP ステータスは、アプリケーション レベルのエラーに対処するためにこれを変更するのではなく、サーバー レベルで発生する接続エラーとファイル取得エラーに関するものに限定する必要があると思います。

読むべき良い記事やリソースも非常に高く評価されます.

4

2 に答える 2

2

REST 要求でエラーを表示する最善の方法は、HTTP ステータス コードを適切なエラーに変更し、そのエラーを応答に埋め込むことです。

JSON を使用している場合、この例ではステータス コードを 500 に設定すると、次のようになります。

{"error" : "An error has occurred while trying to read from the database."}

これは、Microsoft CRM がエラーを報告するために使用するのと同じ方法であり、優れた方法であることが証明されています。RESTFul アプリケーションは、JSON (または XML を使用している場合) を期待している場合、応答の解析に失敗しません。

于 2011-11-24T03:34:37.257 に答える
1

この質問は同じ問題に対処しています (おそらく少し異なる視点から)。

一般に、アプリケーション内のリソースへのリクエストがエラー状態になった場合、その事実は HTTP ヘッダーに反映されるべきだと思います。アプリケーションの応答を使用して、より詳細な情報を提供できます。

更新:アプリケーション エラーとステータス コード (Azure で使用) の興味深いマッピングを次に示します。

于 2011-11-24T03:22:39.650 に答える