我一直在查看REST API的示例,如Netflix http://developer.netflix.com/docs/REST_API_Reference#0_59705和Twitter,他们似乎在statusText标头响应中放置错误消息而不是responseText.我们正在开发一个内部RESTful api,我正在争论发送自定义statusText消息并忽略responseText.
对于我们的应用程序的范围,当用户尝试做他们不应该做的事情时,我们返回错误400,并且将在用户界面中为用户更新的唯一错误消息将以400传递.我是相信消息应该作为一个修改过的statusText发送,但是其中一位工程师(他比我对REST知之甚少)正在争论在responseText中发送它.
什么是最好的方式?
HTTP定义您应该在响应实体主体(即responseText)中放置描述性错误消息.
statusText不由任何客户端呈现或处理.
我将使用状态文本作为错误消息类型,即400客户端错误,并使用正文来描述可以呈现给用户的问题,无论客户端可以处理的格式如何.
编辑:请注意,从那时起,存在一种新的标准化格式,以标准方式将错误详细信息传递回客户端,您可以在https://tools.ietf.org/html/rfc7807找到该文件,我建议您这样做.
我认为你是对的,一般方法是使用HTTP中内置的现有错误机制.
通常,尝试将错误映射到现有的HTTP错误,例如,如果他们请求他们没有权限的东西,则返回403错误.
如果他们要求不存在的东西,请返回404.
亚历克斯