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

问题描述 投票:0回答:3

我有2项服务 - 1.客户服务 2.特色服务

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

rest api httpresponse
3个回答
0
投票

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


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找到更多


0
投票

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

204是200和404之间的公平妥协,但我认为它增加了最小的价值。

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

© www.soinside.com 2019 - 2024. All rights reserved.