Dan*_*fer 3 rest json api-design http
我有一个用于搜索的 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"
}
]
Run Code Online (Sandbox Code Playgroud)
空搜索结果的正确 HTTP 状态代码和有效负载是什么?
200 OK带有空集合的HTTP 状态[]
204 No Content带有空集合的HTTP 状态[]
204 No Content带有空正文的HTTP 状态
我会推荐:
HTTP Status 200 OK with a empty collection []
Run Code Online (Sandbox Code Playgroud)
原因是 204 表示没有内容要发回,这不是您调用的结果。
在你的情况下,有东西要送回来。这是一个 Json 结果,恰好由一个空集合组成。
更新:
从 HTTP 协议定义:
10.2.5 204 No Content:服务器已经完成请求但不需要返回实体主体,并且可能想要返回更新的元信息。
和:
204 响应不能包含消息体,因此总是由头字段之后的第一个空行终止。