rest - HTTP GET 200 与 204

标签 rest http http-status-code-404 http-status-code-200 http-status-code-204

我们正在设计一个公共(public) API,并试图找出以下情况下 GET 的最佳实践:
路径参数:

/orders/{orderId}
找到:200 个响应体。
未找到:404。
查询参数:
/Products/{productId}/orders?color={color}
找到的订单:200 条响应正文。
未找到:在这种情况下,这应该是 200 还是 204 甚至是 404?
在我看来,应该是 200 或 204,因为在这种情况下找到了资源,而查询参数只是起到过滤作用。但是在这种情况下我们应该返回 200 还是 204 ?

最佳答案

假如说
(1) 第一个 URL 仅用于一个订单。
(2) 第二个 URL 用于 0 个或多个订单的列表。

第一个响应中缺少订单应该是 404,因为非订单不是订单。
第二个响应中缺少的订单应该是 200,因为空列表仍然是列表。

关于rest - HTTP GET 200 与 204,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35806599/

相关文章:

python - Nginx 对 Django 应用程序响应 404,但静态文件可以工作

Java Rest API 调用另一个 Rest 而不等待响应 - 在 JAX-RS 中

带有自定义 header 的 PHP POST 给出 HTTP 400 错误请求响应(错误?)

javascript - Request-URI Too Large window.open - 解决方法

http - 用于指示 OpenID Connect 服务器位置的标准 HTTP header ?

java - Struts 2 - HTTP 状态 404 - 没有为操作定义结果

java - 是否可以在 Spring/REST 中定义具有相同映射但不同参数的多个方法?

asp.net-mvc - 以 Web 服务为模型的 ASP.Net MVC?

javascript - 没有显示值

javascript - 如何将Axios错误返回给客户端? (不仅记录)