我有2项服务 - 1.客户服务 2.特色服务
客户服务请求与客户端对应的功能的功能服务。如果在数据库中找不到客户端的功能应该返回什么? 1. 404没有找到资源 2. 204成功 - 没有内容 3. 200成功 - {features:[]} //清空列表
HTTP响应应该是200,只需在TAG中显示“空”结果
您可以通过两种方式返回。如果没有内容,则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找到更多
在实践中,我总是返回一个带有空列表的200。列表为空的事实告诉消费者,尽管请求没有出错,但没有与之关联的资源。
204是200和404之间的公平妥协,但我认为它增加了最小的价值。
我个人会回避在返回列表的端点上抛出404,因为预计会出现列表为空的情况(这可能是一个过于宽泛的陈述)。如果请求由于与列表相关联的资源而失败,那么我肯定会认为404有效(假设您有一个带帽子列表的用户,并且帽子的请求是针对NOT FOUND用户的)。