在JSON Web服务中发送错误响应的最佳做法是什么?

Jam*_*est 15 rest json web-services

在JSON Web服务中发送错误响应的最佳做法是什么?我已经看到它做了几种方式,并想知道选择中是否有任何商定的标准或最佳实践.

我已经看到它完成了响应包括成功或失败的指示以及要返回的数据或合适的错误消息,例如

[{'success':true, 'data':{...}]
[{'success':false, 'data':{'message':'error'}]
Run Code Online (Sandbox Code Playgroud)

但我也看到了JSON对象只包含数据的示例,该服务使用正常的HTTP错误代码来指示问题(403,404,500等).(这就是Twitter API的用途.)

是否有"正确"的方式来做到这一点,还是只是风格问题?后一种方法是否更"RESTful"?

b_e*_*erb 17

在"RESTful"方法中,主要错误响应由适当的状态代码(4xx/5xx)指示.

您的消息应提供有关如何从错误中恢复的附加特定于应用程序的提示.这可能包括已发生错误的人类可读表示或某种更技术指标(即提供异常类名称).

为了通用,请保留错误消息的修复语法.这允许您在破坏客户端时引入新的错误消息.

  • 为此,我今天遇到了这个问题:http://tools.ietf.org/html/draft-pbryan-http-json-resource-01 (4认同)