我们正在设计一个公共(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/