我有2个服务-
1.客户服务
2.功能服务
客户服务向要素服务询问与客户相对应的要素。如果在数据库中找不到客户端的功能,我们应该返回什么?
1. 404找不到资源
2. 204成功-没有内容
3. 200 Success-{features:[]} //空列表
答案 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有效(假设您有一个带有帽子列表的用户,并且对帽子的请求是针对未找到用户的)。