我不确定在请求有效时使用什么响应代码但是给定参数没有结果
JSON返回成功的true / false和消息
当我执行GET
时,我使用了一些数据:
200 HttpStatusCode.OK
但是,如果没有数据,我仍然应该使用OK
并返回JSON成功/消息,或者我应该使用400 HttpStatusCode.BadRequest
来表明请求中的内容是坏的。
答案 0 :(得分:3)
这取决于客户没有结果意味着什么。 通常缺少数据仍然是http 200 ok。
e.g。 /employees
等。
但是,对于某些情况,您可以返回 找不到HTTP 404。
特别是当客户希望存在特定资源时。
e.g。 employees/update/32
通常任何其他响应代码(204等)虽然技术上有效且合适,但可能会使客户感到困惑。 此外,如果请求没有任何问题,也不应使用400 Bad Request。
答案 1 :(得分:1)
如果操作成功但确实没有响应数据,请使用状态204 NO CONTENT
。如果缺少预期的实体,请返回404 NOT FOUND
。如果出现某种内部错误,请返回500 SERVER ERROR
。
服务器已完成请求但不需要返回 entity-body,可能想要返回更新的元信息。该 响应可能包括新的或更新的元信息形式 实体标题,如果存在,应该与...相关联 要求的变体。
如果客户端是用户代理,它不应该更改其文档视图 从导致请求发送的那个。这个回应是 主要是为了允许在没有的情况下进行动作的输入 但是,导致更改用户代理的活动文档视图 任何新的或更新的元信息应该应用于文档 目前在用户代理的活动视图中。
204响应绝不能包含消息体,因此总是如此 由标题字段后的第一个空行终止。
答案 2 :(得分:0)
如果请求没有错,但你没有任何数据(即搜索返回0行),而不是BadRequest
:
当没有其他错误适用时,或者如果确切,则发送BadRequest 错误未知或没有自己的错误代码。
http://msdn.microsoft.com/en-us/library/system.net.httpstatuscode%28v=vs.110%29.aspx