如何处理REST异常?

时间:2010-06-25 21:34:44

标签: json rest web-services cxf

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

响应内容类型:JSON

我们有两种解决方案:

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

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

    反驳论据:

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

    你的发言是什么?

2 个答案:

答案 0 :(得分:13)

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

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

答案 1 :(得分:5)

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

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

在冻结你的api规范之前,必须先阅读

http://en.wikipedia.org/wiki/REST