9

別のリソースの一部を形成するリソースを要求するときの正しい応答コードとメッセージのガイダンスを探しています。

たとえば、次のGETリクエスト:

users / {id}

ユーザーが存在しない場合は、ユーザーリソースが見つからないというメッセージとともに404が返されます。

私の質問は、ユーザーリソースが見つからない場合、次は何を返す必要があるかということです。

users / {id} / friends

現在、最初の例と同じコード/メッセージを返しています。特に友達のリソースに関連するメッセージを返す必要がありますか?個人的には、URIチェーンが大きい場合に備えて、APIクライアントに親リソースが見つからないことを認識させる方が便利だと思います。

4

2 に答える 2

6

この特定の例で、存在しないユーザーへの友達リクエストと、単に友達がいないユーザーへの友達リクエストをクライアントが区別できるようにすることがポイントである場合、404 を返すのが最も理にかなっていると思います。最初のケースは 200 で、2 番目のケースは空のセットです。

つまり、"none" は友人にとって有効な値です。ユーザーが存在するが、(空の可能性がある) 友人のリストが存在しないというケースはありません。そのため、親リソースに対して 404 を発行することにあいまいさはありません。

于 2013-03-18T00:26:37.530 に答える
1

400 Bad Requestヘッダーを返し、エラー メッセージを応答の本文に配置したくなるでしょう。残念ながら、このシナリオには正しい答えも間違った答えもありません。そのため、自分と自分のアプリケーションにとって最適な方法を選択してください。

于 2013-03-13T12:06:54.017 に答える