Rest API - 列表项的预期http代码响应

时间:2017-08-22 09:39:07

标签: list rest api

方案: 以下Rest api列出属于特定订单的产品(在路径{orderid}中给出其ID)

/ API /订单/ {订单ID} /产品

的最佳/推荐响应是什么?

/ api / order / 123 /产品,其中订单123不存在,为什么?

选项

  1. 404 Not Found
  2. 200 with empty array
  3. 其他

1 个答案:

答案 0 :(得分:0)

404表示client error,"原始服务器未找到目标资源的当前表示,或者不愿透露其存在的情况"。

粗略地说,您正在向客户端(以及中间组件)报告客户端在请求该资源时出错

这可能是一个不错的选择 - 资源被列为路径段的事实意味着hierarchy,并且如果资源不是这样的话,很可能存在,而不是其下属资源。

换句话说,如果/api/order/123返回404,那么具有前缀/api/order/123/ 的所有资源也的语义一致(但不是必需的)返回404。 / p>

  

为什么?

因为服务器的实际实现应该隐藏在统一接口之后。

统一界面的要点是客户端无法告诉它它不会与20世纪90年代的通用网站进行对话。就其而言,/api/order/123/products可以是名为/api/order/123的目录中名为products的文件。

那么如果我们在目录不存在的情况下尝试从该路径读取,那么文件系统会发生什么?文件系统会返回错误(ENOENT?),然后Web服务器通常会向客户端返回404响应。

您的REST API是一个适配器,它使您的系统看起来像一个网站。