在REST API调用中,如果结果为空,我们应该返回什么

时间:2019-04-30 06:23:14

标签: rest api httpresponse

我有2个服务-
1.客户服务
2.功能服务

客户服务向要素服务询问与客户相对应的要素。如果在数据库中找不到客户端的功能,我们应该返回什么?
1. 404找不到资源
2. 204成功-没有内容
3. 200 Success-{features:[]} //空列表

3 个答案:

答案 0 :(得分:0)

HTTP响应应为200,只需在TAG中显示“空”结果

答案 1 :(得分:0)

您可以通过两种方式返回。如果没有内容,则404无效。

a) 204 No Content
Explaination: The server has fulfilled the request but does not need to return an entity-body, and might want to return updated metainformation.


b) Return 200 and with empty body {};

您可以在w3 https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

找到更多信息

答案 2 :(得分:0)

在实践中,我总是返回200,其中有一个空列表。列表为空的事实告诉消费者,尽管请求没有错,但没有与之关联的资源。

204是200和404之间的合理折衷,但我认为它增加了最小的价值。

我个人会回避在返回列表的端点上抛出404,因为预计在某些情况下列表为空(可能过于宽泛的声明)。如果由于与列表相关的资源而导致请求失败,那么我肯定会认为404有效(假设您有一个带有帽子列表的用户,并且对帽子的请求是针对未找到用户的)。