【发布时间】:2019-05-01 18:55:06
【问题描述】:
我们正在用 Java 实现 REST API。
对于 GET REST 端点,如果我搜索某些内容:
如果找到任何记录/记录,则它将返回 200 状态代码和结果/结果。
如果没有找到记录,正确的 HTTP 状态码是什么?
当我在 Google 和 SO 中搜索时,我发现了不同的答案,例如:
200 with empty list (if the API response is item but NOT list, then I can't send empty list)
204 No Content
404 Not Found
如果未找到记录或未找到搜索结果,正确的 HTTP 状态代码是什么?
【问题讨论】:
-
您可以考虑使用github api 或youtube api 的约定。我的意见,我使用 200 和空列表,与上述参考相同。
-
如果没有找到任何东西被认为是与客户端相关的错误而不是返回 404,但通常这不应该是 IMO 本身的故障。
204 No Content或多或少是为了通知客户端它可以保持其当前状态,因为处理的请求没有改变任何东西。因此,它更常用于PUT操作。因此我会选择200 OK
标签: rest http spring-boot httpresponse