[解決済み】有効なリクエストでありながら、データが空の場合の適切なRESTレスポンスコードは何ですか?
2022-03-24 07:18:34
質問
たとえば、次のような GET リクエストを実行します。
users/9
が、id #9 のユーザは存在しない。
最適なレスポンスコードはどれでしょうか?
- 200 OK
- 202 受け入れられました
- 204 コンテンツなし
- 400不正なリクエスト
- 404 Not Found
解決方法
TL;DR:使用する
404
参照 このブログ . とてもよくわかると思います。
のブログのコメントまとめ
204
:
-
204 No Content
は、ブラウザのレスポンスコードとしてはあまり有用ではありません (HTTP 仕様によれば、ブラウザはこれを「ビューを変更しない」というレスポンスコードとして理解する必要があるようです)。 -
204 No Content
は しかし、ajax ウェブサービスでは、何かを返すことなく成功を示すことができるので、非常に便利です。(特にDELETE
またはPOST
のように、フィードバックを必要としないもの)。
従って、ご質問の答えは
404
を、あなたの場合は
204
は特殊なレスポンスコードであり、ブラウザが
GET
.
よりもさらに適切でない他のレスポンスコードもあります。
204
と
404
:
-
200
は、取得に成功したものの本体と一緒に返される必要があります。 取得したエンティティが存在しない場合は適切ではありません。 -
202
は、サーバーがオブジェクトの処理を開始したものの、まだ完全に準備ができていない場合に使用します。 確かに、今回のケースとは違います。 に応答してユーザ9の構築を開始していませんし、今後も開始することはないでしょう。GET
というリクエストがあります。 それは様々な規則を破ることになります。 -
400
は、不適切な形式の HTTP リクエスト (たとえば不正な HTTP ヘッダや不適切な順序のセグメントなど) に対応するために使用されます。これは、使用しているフレームワークによってほぼ確実に処理されます。自分でサーバーを一から書き直すのでなければ、このような処理は必要ないでしょう。 編集 : 新しいRFC は、意味的に無効なリクエストに400を使用することができるようになりました。
ウィキペディアの HTTPステータスコードの説明 が特に参考になります。 また、定義も見ることができます。 HTTP/1.1 RFC2616 ドキュメント www.w3.org に記載されています。
関連
-
[解決済み】Android 8:クリアテキストのHTTPトラフィックが許可されない
-
[解決済み] Powershellです。アウトファイル - パスへのアクセスは拒否されました
-
[解決済み] RESTfulとRESTlessの違いについて
-
[解決済み] jenkins restful apiのリファレンスはどこにありますか?[クローズド]
-
[解決済み] 正しいJSONコンテンツタイプは何ですか?
-
[解決済み] cURLでJSONデータをPOSTするにはどうすればよいですか?
-
[解決済み] リソースが既に存在する場合の POST に対する HTTP レスポンスコード
-
[解決済み】REST APIでのPUTメソッドとPATCHメソッドの使い分け 実生活でのシナリオ
-
[解決済み】API paginationのベストプラクティス
-
[解決済み】REST認証スキームの安全性
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] UML / API : RESTful APIをモデル化する方法
-
[解決済み] postmanでAPIからエクセルファイル(.xls)をダウンロードする方法は?
-
[解決済み] Apache Marathon REST APIを使用してDockerインスタンスをスケールアップする方法。
-
[解決済み] RESTとAPIの違いは何ですか?
-
[解決済み] jenkins restful apiのリファレンスはどこにありますか?[クローズド]
-
[解決済み】データのPOSTに対する400と422のレスポンス
-
[解決済み】RESTful APIで多対多の関係を処理するにはどうすればよいですか?
-
[解決済み】動詞のないREST URLを作成する方法は?
-
[解決済み] restfulなPOSTレスポンスのための「ベスト」プラクティス
-
[解決済み】Node.js内でリモートRESTコールを行うには? CURLは?