我编写了Rest API,当后端系统中有数据时返回200个http代码。但是当后端系统中没有数据时,我应该返回哪个http状态代码,以便它可以帮助客户端代码解释响应而不会有任何歧义。
答案 0 :(得分:3)
HTTP代码204用于表示请求成功,并且没有任何内容可以返回。如果没有找到数据并且认为这是一个错误,那就是经典的404。 HTTP status codes
答案 1 :(得分:3)
我编写了Rest API,当后端系统中有数据时返回200个http代码。但是当后端系统中没有数据时,我应该返回哪个http状态代码,以便它可以帮助客户端代码解释响应而不会有任何歧义。
快速审核; status-code描述了......
服务器尝试理解并满足客户端相应请求的结果。响应消息的其余部分将根据为该状态代码定义的语义进行解释。
换句话说,它是响应的简写分类,而不是后端系统的状态。
当后端系统中没有数据时,我应该返回哪个http状态代码,以便它可以帮助客户端代码解释响应而不会有任何歧义。
这取决于“后端系统中没有数据”对您的上下文意味着什么。
如果后端系统中没有数据表明客户端出现错误,那么您应该从Client Error 4xx类返回状态代码。
如果后端系统中没有数据表明服务器出错,那么您应该从Server Error 5xx类返回状态代码。
如果系统中根本没有错误(请求正常,服务器正在正确处理请求),那么您应该从Successful 2xx类返回状态代码
204 No Content具有确切含义;它建议客户端(和中间组件)原始服务器的响应不包括响应有效负载主体中的内容。
204响应由标题字段后的第一个空行终止,因为它不能包含消息正文。
换句话说,如果没有可用数据的表示是空的application / json对象
{}
或空应用程序/ json数组
[]
或application / json null
null
并且您要将该表示发送给客户端,然后使用204
状态代码不符合RFC 7321. 200几乎肯定是正确的代码这些案件。