繁体   English   中英

没有结果的REST搜索的HTTP状态代码

[英]HTTP status code for a REST search without result

我有一个用于搜索的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为空的204 No Content

IMO第一种情况:

  • HTTP状态200 OK ,集合为空[]

然后,您不必检查204并使用返回的内容,这是一个空列表。

我建议:

HTTP Status 200 OK with a empty collection []

原因是204表示没有内容可以发回,这与您的通话结果无关。

在您的情况下,有些东西可以退回。 这是一个Json结果,恰好由一个空集合组成。

更新:

根据HTTP协议定义:

10.2.5 204无内容:服务器已完成请求,但不需要返回实体,可能要返回更新的元信息。

和:

204响应必须不包含消息正文,因此始终由标头字段之后的第一个空行终止。

在设计Web应用程序时,这是一个惯例问题。 我要走200英镑,带空的收藏夹。 因为:

  • 证明您的API确实会返回响应
  • 在客户端处理200会容易得多,因为我假设您正在使用Javascript,而其他响应代码可能会向您抛出错误

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM