在REST服务上返回错误消息的最佳方法?
我一直在寻找REST API的例子,比如Netflix http://developer.netflix.com/docs/REST_API_Reference#0_59705和Twitter,他们似乎将错误消息放在statusText头响应中而不是responseText中。 我们正在开发一个内部的RESTful api,我正在争取发送自定义的statusText消息并忽略responseText。
对于我们的应用程序的范围,当用户尝试做他们不应该做的事情时,我们返回错误400,并且将在用户界面中为用户更新的唯一错误消息将使用400.我是认为该消息应该作为修改后的状态文本发送,但其中一位工程师(对REST的了解比我少一些)正在争论将其发送到responseText中。
什么是最好的方式去?
我认为你是对的,一般的做法是使用HTTP中内置的现有错误机制。
通常,尝试将错误映射到现有的HTTP错误,例如,如果他们请求他们没有权限的错误,则返回403错误。
如果他们请求不存在的东西,则返回404。
HTTP定义您应该在响应实体主体中放置描述性错误消息,即responseText。
statusText不被任何客户端渲染或处理。
我会使用错误消息类型的状态文本,也就是400客户端错误,并使用身体来描述可以呈现给用户的问题,无论客户端能够处理什么格式。
编辑:请注意,从那时起,存在一种新的标准化格式,可以将标准时尚错误详细信息返回给客户端,您可以在https://tools.ietf.org/html/rfc7807找到我想推荐的内容。
根据HTTP规范(rfc2616):“HTTP状态代码是可扩展的”
但是我不认为为每个不同的错误信息创建新的状态是正确的方法:
如果找不到符合您需求的任何类别创建自定义类别(但我相信您会),并将错误消息放入HTTP响应正文中,我会说适当选择HTTP状态(HTTP状态码定义)。
链接地址: http://www.djcxy.com/p/45319.html上一篇: Best way to return error messages on REST services?
下一篇: Which MIME type to use for a binary file that's specific to my program?