Pur*_*ome 5 rest json http 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" : 
}
Run Code Online (Sandbox Code Playgroud)
非常简单.
现在,我不知道如果该人试图要求......产品或问题或其他什么,该项目不存在,该怎么做.
例如..
{
    "items": []
    ... snipped ....
}
Run Code Online (Sandbox Code Playgroud)
我以为我会返回200和上面的Json,Items属性为空.
我的另一个想法是返回带有items属性的json,但是将响应http状态设置为404.
思想/标准?
无论如何,我真的想要回归json.为什么?配额.即使是空洞的结果仍然是api服务的合法打击.
在我看来,我会返回 400 和 204 状态:
http://en.wikipedia.org/wiki/List_of_HTTP_status_codes
400 错误请求
由于语法错误,无法满足请求。[2]
如果传递无效参数,则会返回 400 状态,表明请求错误。
在这种情况下,我不会返回任何 JSON 消息。无效,解决一下。StatusMessage 可以显示“无效参数”,但没有内容。
204 没有内容
服务器成功处理了请求,但没有返回任何内容。[2]
如果您传递了有效的参数,但未找到内容,则可以说未找到。
您可能*想传回一些附加信息,也可能不想。
对于 Twitter,假设您想要搜索“@JohnDoe”用户,但未找到。您可以说 204,并表示:“抱歉,我们找不到 @JohnDoe,但我们确实找到了这 3 个类似的人,这可能就是您想要的”,在这种情况下,您不会按下他们的详细信息,而只按下 Twitter 名称。
但是,如果您正在搜索推文,但没有找到,则没有理由向客户发送任何附加信息。就说没找到,故事结束。
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           1465 次  |  
        
|   最近记录:  |