这个Json结果应该返回404还是200?
我正试图根据StackExchange的API结果制作一个API 这是我的json输出这个Json结果应该返回404还是200?,json,http,rest,http-status-code-404,http-status-code-200,Json,Http,Rest,Http Status Code 404,Http Status Code 200,我正试图根据StackExchange的API结果制作一个API 这是我的json输出 { "items" : [ ... objects in here .... ] "page" : "page_size" : "total_pages" : "total_items_count" : "maximum_quota" : "remaining_quota" : } 非常简单 现在,我不知道如果这个人试图请求。。嗯。。产
{
"items" : [ ... objects in here .... ]
"page" :
"page_size" :
"total_pages" :
"total_items_count" :
"maximum_quota" :
"remaining_quota" :
}
非常简单
现在,我不知道如果这个人试图请求。。嗯。。产品或问题或其他任何东西,并且该项不存在
例如
我想我应该返回一个200和上面的Json,Items属性为空
我的另一个想法是返回json,其中items属性为空,但将响应http状态设置为404
想法/标准
我真的很想返回json,不管发生什么。为什么?配额的。即使结果为空,api服务也会受到合法的影响。在我看来,我会返回400&204状态: 400错误请求 由于语法错误,无法满足请求。[2] 如果传递的参数无效,则返回400状态,表示请求已损坏 在这种情况下,我不会返回任何JSON消息。这是无效的,把它整理一下。StatusMessage可以显示“无效参数”,但没有内容
204无内容 服务器已成功处理该请求,但未返回任何内容。[2] 如果您传递了有效参数,但未找到内容,则可以说未找到内容 您可能*想要传回一些附加信息,但可能不想 对于Twitter,假设您想搜索“@JohnDoe”用户,但未找到该用户。你可以说204,并说:“很抱歉,我们找不到@JohnDoe,但我们确实找到了这3个类似的人,这可能是你想要的。”在这种情况下,你不会推下他们的详细信息,只是推特上的名字
但是,如果您正在搜索一条推文,但未找到,则没有理由向客户端发送任何其他信息。就说它没有找到,故事就到此为止。在我看来,我会使用404,因为这是标准的未找到代码。我喜欢它!我从来没有想过204:)是的,我用于传递错误请求数据的400。我想在这里指出,根据RFC,204不能包含消息体,因此总是由头字段后的第一个空行终止。
{
"items": []
... snipped ....
}