构建RESTful Web服务端点,并想知道HTTP标头状态与响应正文中的状态的最佳实践是什么。他们应该总是匹配,还是可以不同?例如,在发生错误请求的情况下,它实际上是我们的应用层,它负责解析和处理有效负载。因此,如果请求进入应用程序层,HTTP标头是否显示200(表示传输没有问题),而响应主体包含400(表示错误的请求)?或者他们应该总是匹配?标题和身体都有400?
感谢。
答案 0 :(得分:0)
一般来说,保持一致是一种好习惯。因此,如果您打算在JSON正文中返回HTTP状态代码,它应该与HTTP状态代码相同。
如果您想添加有关应用程序错误的更多详细信息。 JSON-API standard为JSON错误主体定义了一些字段,例如:
想象一下,您的应用程序有以下路线来获取属于艺术家的歌曲(由:id参数标识)的详细信息(由:artist_id参数标识):
GET /artists/:artist_id/songs/:id
此请求可能会产生两个不同的Not Found错误:
对于这两种情况,您将返回HTTP 404状态代码。但是,在您的json正文中,您可以添加更多详细信息:
我还建议您查看JSON-API standard如何定义HTTP错误代码