
[英]HTTP status code when an object is not found with an id which is passed via request body
[英]Which http status code for 'entity not found'?
/persons?age=18
想象一下搜索没有返回任何结果(意味着:没有找到请求的实体)。
如果我在此处返回404
,则表明/persons
路径可能完全无效。
如果请求通常有效(意味着:路径存在,并且请求参数有效),但仍然没有数据返回,是否有任何可接受的状态代码可以返回?
204
也不合适,因为它用于告诉用户“您的请求是 200 OK,但永远不会有对您的请求的响应正文”(例如修改)。
如果请求通常有效(意味着:路径存在,并且请求参数有效),但仍然没有数据返回,是否有任何可接受的状态代码可以返回?
当资源有一个表示时, 200是合适的,即使该表示是一个空列表。
# Request:
GET /persons?age=18
# Response:
200 OK
[]
想想“没有返回任何结果的网络搜索页面”,下载一个空文件。
Jim Webber 2011 年的演讲可能有助于理解这里的观点:状态代码和标头属于“通过网络传输文档”域,而不属于您的域应用程序协议。 特定于您的应用程序的组件应注意响应正文中的消息; 元数据针对正在传输文档的通用组件。
实际上你应该返回 200。找到的实体数不会改变 http 代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.