如果没有可用数据,应该返回什么http

时间:2016-07-29 12:48:05

标签: rest api-design

例如,我有一个实际上总是存在的api方法/api/orders.getOrders。 如果此方法不返回以下格式的数据,我应该发送404或200 http响应代码吗?

{ "orders":[] }

1 个答案:

答案 0 :(得分:7)

200 是正确的。

来自RFC 7231

  

状态代码的4xx(客户端错误)类表示客户端似乎有错误。

     

404(未找到)状态代码表示源服务器未找到目标资源的当前表示

在您的情况下,客户端在要求资源时犯了错误;原始服务器确实找到了资源的当前表示,因此404(实际上,整个4xx类响应)不合适。

204 is also wrong

  

204(无内容)状态代码表示服务器已成功完成请求,并且在响应有效负载正文中没有要发送的其他内容。

"没有内容"表示HTTP响应消息体是空的,也就是说返回的表示是0字节长。返回空资源的非空表示时,它不合适。