2017-06-07 9 views
1

/guest/{guestId}というエンドポイントがあるとします。このエンドポイントには、GET機能があります。ゲストIDを入力すると、すべてのゲスト情報を持つオブジェクトが返されます。HTTP 400とHTTP 404の間に不正なURI api要求がある

質問はこれらの各シナリオに返されるべきものである - /guest/invalidId

にHTTP 1.1のドキュメントをリードする

guestId = "" /guest/
につながるguestId = "invalidIdは" 部屋を残しているようです無効なIDを渡すという点でどちらかを開くが、guestIdが空白の場合は404が示唆される。無効なIDの場合、技術的にはエンドポイントに当たっていますが、400を指し示す不正な形式の構文を与えるだけですが、同時に404を指す無効なURIをサーバーに提供します。

実際には、基本的に正しい?

+0

[RESTful APIが無効なIDを渡した場合に400または404を返す必要があります](https://stackoverflow.com/questions/25378624/shoulda-a-restful-api-return-400-or-404- when-passed-invalid-id) – Abhijeet

答えて

3

ここに解釈の余地はありません。 /guest/invalidIdのリソースが存在しないと、それ自体が本当にとにかく「不正な形式」ではないた404

要求を返す必要があり、それだけでは存在しないリソースを指したURIを使用していました。不正な形式です(特定のアプリケーションの観点から見ると有効なIDではありませんが、HTTPプロトコルの観点からのものではありません)。一般的なルールとして

これは同様に役立つかもしれない:あなたはクライアントにエラーを発するようにしたい場合は

を、そしてクライアントが担当しています。 400〜499の範囲でエラーを発生させたいでしょう。あなたの特定のエラー条件を満たすための良い特定のエラーが見つからない場合は、実際には他のものが実際に適合していないときにステータスコードとして使用されるように、実際には400を使用したいと思うでしょう。

+1

ニースは、物事をクリアします。ご回答どうもありがとうございました! – user2824512

関連する問題