构建API响应时,哪种方法更适合(手动)返回状态代码以指示请求的有效性:
1 - 在JSON响应中嵌入响应代码
{
'status_code' => 200,
'status_message' => 'OK',
'data' => { ... }
}
2 - 或者修改HTTP标头状态字段是否更好?
Request URL:http://somesite.com
Request Method:GET
Status Code: 200 (EDITING THIS ONE)
我认为HTTP状态只应该考虑服务器级别发生的连接错误和文件检索错误,而不是改变它以解决应用程序级错误。
任何好的文章和资源都会非常受欢迎。
答案 0 :(得分:2)
我发现在REST请求中显示错误的最佳方法是将HTTP状态代码更改为正确的错误,并将错误嵌入到响应中。
如果您使用的是JSON,它可能如下所示,此示例的状态代码设置为500:
{"error" : "An error has occurred while trying to read from the database."}
这与Microsoft CRM uses to report errors的方法相同,并且它已被证明是一种好方法; RESTFul应用程序如果期望JSON(或XML,如果您正在使用它),将无法解析响应。
答案 1 :(得分:1)
This question解决了同样的问题(也许是从略微不同的角度来看)。
我认为,一般来说,如果对应用程序中的资源的请求导致错误情况,那么这个事实应该反映在HTTP标头中。您可以使用应用程序响应来提供更详细的信息。
更新:Here是应用程序错误与状态代码(由Azure使用)的有趣映射。