如何处理REST异常?

Van*_*ran 9 rest json web-services cxf

我们正在讨论如何处理REST异常.

响应内容类型:JSON

我们有两个解决方案:

  1. 将所有未经检查的异常作为JSON响应抛出.
  2. 发送请求无效的响应代码.

参数:

  • 当它出错时,为什么要返回JSON?只需发送无效的响应代码.

相反的观点:

  • 响应代码太技术化,无法处理普通开发人员.

你的发言是什么?

Mat*_*hen 13

对于我最近开发的JSON API,我做了两个.我总是用有效的JSON回答(好吧,假设我完全回应).如果我检测到无效请求,我使用状态400.如果我检测到服务器错误(我不认为是由无效请求引起),我使用5xx状态.JSON对象包含仅为错误设置的特殊键,具有字符串值.

我认为这是一个尊重REST原则的好解决方案,可以多种方式使用.其他一些JSON API使用相同的解决方案,例如Yahoo Search.试试http://search.yahooapis.com/ImageSearchService/V1/imageSearch?appid=YahooDemo&output=json.


nea*_*ise 5

使用HTTP等错误代码.所以因为某些内部问题导致任何异常50*.和40*的坏参数.尽可能避免使用您自己定义的代码.我们的想法是拥有一个"统一"的界面.

一般来说.204为成功而没有发送任何内容200以获得成功的资源的json表示并且如果它不是成功的操作则返回适当的响应代码.您可以选择返回json.为简化起见,您可以为所有错误响应设置一个通用格式(json).

在冻结你的api规范之前,必须阅读http://en.wikipedia.org/wiki/REST.