我有一个搜索的REST端点。
GET /person?firstname=john&name=smith
结果返回了具有HTTP状态代码200 OK
的集合:
[
{
"id":11,
"firstname":"John",
"name":"Smith",
"birthday":"1996-03-08"
},
{
"id":18,
"firstname":"John",
"name":"Smith",
"birthday":"1963-07-11"
}
]
空搜索结果的正确HTTP状态代码和有效负载是什么?
带有空集合的HTTP状态200 OK
[]
带有空集合的HTTP状态204 No Content
[]
身份为空的HTTP状态204 No Content
答案 0 :(得分:3)
IMO第一个案例:
200 OK
,空集合[]
然后你不必检查204并使用返回的内容,这是一个空列表。
答案 1 :(得分:2)
我建议:
HTTP Status 200 OK with a empty collection []
原因是204表示没有内容可以发回,而这不是您通话的结果。
在您的情况下,有一些东西要发回。这是一个恰好由空集合组成的Json结果。
<强>更新强>
来自HTTP协议定义:
10.2.5 204否内容:服务器已完成请求,但确实如此 不需要返回实体主体,并且可能希望返回更新 的元信息。
和
204响应绝不能包含消息体,因此总是如此 由标题字段后的第一个空行终止。
答案 2 :(得分:1)
在设计Web应用程序时,这是一个常规问题。 200 ok with empty collection 将是我的方式。因为: