【问题标题】:How to do proper Error handling in RESTful web services?如何在 RESTful Web 服务中进行正确的错误处理?
【发布时间】:2014-06-29 17:43:46
【问题描述】:

我正在使用 spring-mvc 设计一个宁静的 WS API。

如果假设在服务器执行代码时发生特定错误(例如:MyCustomException),并且我想向调用我的 WS 的客户端返回 error_codeerror_desc 详细说明错误原因,那么以通用方式设计此 API 的最佳方法是什么?

P.S.:请注意,如果服务器没有遇到任何错误,那么同样的 API 应该将响应对象返回给客户端。

谢谢。

【问题讨论】:

    标签: java web-services rest spring-mvc error-handling


    【解决方案1】:

    对于错误处理,最好使用成熟的标准。 JSON 响应中的 error_code 和 error_desc 不是一个成熟的标准,因此我强烈建议不要将错误信息放在 JSON/XML 有效负载中。不遵循标准会增加出错和误解的机会,并且通常会延长您的开发过程。

    相反,我建议使用 HTTP 状态代码,如果您必须提供有关错误的更详细信息,请在标头中提供。

    在此处查看状态代码的说明/列表:http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

    例如,如果您的服务器/服务遇到未知错误,只需输入 500 状态代码(代表内部服务器错误)。如果不允许用户/客户端使用该资源,请使用 403 Forbidden。如果客户端发送格式错误的请求,则返回 401。

    Spring 有一些非常好的工具可以让这个过程变得更容易。要在您的控制器中处理异常,请查看 @ExceptionHandler 和 @ControllerAdvice。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-10
      • 1970-01-01
      • 2012-11-15
      • 2014-09-02
      • 1970-01-01
      相关资源
      最近更新 更多