5

StackExchange の API の結果に基づいて、API を大まかに作成しようとしています。

これが私のjson出力です。

{
    "items" : [ ... objects in here .... ]
    "page" : 
    "page_size" :  
    "total_pages" : 
    "total_items_count" :  
    "maximum_quota" : 
    "remaining_quota" : 
}

めちゃくちゃシンプル。

さて、その人が製品や質問などを要求しようとして、アイテムが存在しない場合はどうすればよいかわかりません。

例えば..

{
    "items": []
    ... snipped ....
}

Items プロパティが空の状態で、200 と上記の Json を返すことを考えていました。

私が持っていたもう1つのアイデアは、アイテムプロパティが空であるが、応答のhttpステータスを404に設定してそのjsonを返すことでした.

考え方・基準は?

私は本当にjsonを返したいと思っています。なんで?クォータの。空の結果でさえ、API サービスへの正当なヒットです。

4

1 に答える 1

3

私の意見では、400と204のステータスを返します。

http://en.wikipedia.org/wiki/List_of_HTTP_status_codes

400不正な要求

構文が正しくないため、要求を実行できません。[2]

無効な引数を渡すと、リクエストが不正であるという400ステータスが返されます。

このシナリオでは、JSONメッセージは返されません。無効です、整理してください。StatusMessageは「無効な引数」と言うことができますが、内容はありません。


204コンテンツなし

サーバーはリクエストを正常に処理しましたが、コンテンツを返していません。[2]

有効な引数を渡してもコンテンツが見つからなかった場合は、コンテンツが見つからなかったと言えます。

あなたは*いくつかの追加情報を返したいかもしれませんが、そうでないかもしれません。

Twitterの場合、「@ JohnDoe」ユーザーを検索したいのですが、見つかりませんでした。「@JohnDoeが見つかりませんでしたが、あなたが望むかもしれないこれらの3人の類似した人物を見つけました」と、204と言うことができます。その場合、詳細をプッシュするのではなく、Twitterの名前だけをプッシュします。

ただし、ツイートを検索していて見つからなかった場合は、クライアントに追加情報を送信する理由はありません。見つからなかったと言ってください、話は終わりです。

于 2012-04-27T05:09:52.823 に答える