5

我们正在设计一个公共 API,并试图通过以下情况找出 GET 的最佳实践:

路径参数:

/orders/{orderId}

找到:200 个带有响应正文。
未找到:404。

查询参数:

/Products/{productId}/orders?color={color}

找到的订单:200 个带有响应正文。

未找到:在这种情况下,这应该是 200 还是 204 甚至是 404?

在我看来,它应该是 200 或 204,因为在这种情况下找到了资源,并且查询参数只是执行过滤效果。但是在这种情况下我们应该返回 200 还是 204?

4

1 回答 1

1

假如说

(1) 第一个 URL 只针对一个订单。

(2) 第二个 URL 是 0 个或多个订单的列表。


第一个响应中缺少订单应该是 404,因为非订单不是订单。

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

于 2021-04-19T14:02:13.003 回答