私は、かなり広まっていることがわかった慣習に出くわしました。これに名前を付けたウェブページも見つけましたが、名前を忘れてしまい、グーグルでそのページを見つけることができなくなりました。
実際には、RESTサービスからのすべてのJSON応答は次の構造を持つ必要があります。
{
"status": "ok",
"data": { ... }
}
またはエラーの場合:
{
"status": "error",
"message": "Something went wrong"
}
私の質問:JSONでこのような「ステータス」プロパティが必要な理由は何ですか?私の意見では、それがHTTPステータスコードの目的です。
RESTは、クライアントとサーバー間のHTTP通信手段を使用します。たとえば、削除には「DELETE」動詞を使用する必要があります。同様に、リソースが見つからない場合などは404を使用する必要があります。したがって、その考えに沿って、エラーの場合はHTTPステータスで適切にエンコードする必要があります。
エラーの場合にHTTP200ステータスコードを返し、代わりにJSONでエラーを発生させる特定の理由はありますか?応答を処理するときに、javascriptの条件分岐がより複雑になるようです。
アプリケーションに特定のURLにリダイレクトするように指示するために、ステータスが「リダイレクト」になる場合があることがわかりました。ただし、適切なHTTPステータスコードが使用された場合、ブラウザは「無料」でリダイレクトを実行し、閲覧履歴を適切に維持します。
私は主にあなたからの2つの可能な答えを想像します:
- それぞれが好きなアプローチを持つ2つの喧嘩コミュニティがあります(HTTPステータスを常に使用するのかHTTPステータスを使用しないのか)
- または、重要なポイントが欠落しているため、HTTPステータスを使用する必要がある場合もありますが、HTTPステータスが適合せず、「ステータス」JSONプロパティが機能する場合もあります。