Spring Boot 休息服务错误处理
Posted
技术标签:
【中文标题】Spring Boot 休息服务错误处理【英文标题】:SpringBoot rest service error handling 【发布时间】:2018-12-09 14:04:20 【问题描述】:有多种方法可以在 rest api 调用的错误响应中发送自定义消息。 这是最好的方法:
1.一种方法是使用io.swagger.annotations
like
@ApiResponses(value = @ApiResponse(code = 500, message = "error message", response=ErrorDescription.class) )
以上方法签名。
2.另一种方法是在全局异常处理程序上定义@ControllerAdvice
。
哪一个更好。
谢谢
【问题讨论】:
您忘记了第三个:定义自定义exception
仅作用于您的控制器。
【参考方案1】:
使用 swagger 注释的第一种方法无法处理应用程序中的错误。它仅用于文档目的,以便您可以查看 API 在错误情况下的行为方式。使用此注释,您可以为 REST 端点自定义 swagger-ui.html
页面,并将错误代码映射到特定响应对象,并为您的客户端添加自定义描述。
真正处理自定义响应类型和消息的异常您可以使用@ControllerAdvice
并定义结果类型和消息。此外,我还会使用 Swagger 注解写一些关于错误情况的文本,并告诉客户端他可以期待哪个响应对象。
以下博客文章可能会帮助您编写 @ControllerAdvice
分类:http://niels.nu/blog/2016/controller-advice-exception-handlers.html
【讨论】:
以上是关于Spring Boot 休息服务错误处理的主要内容,如果未能解决你的问题,请参考以下文章
Spring Boot提供RESTful接口时的错误处理实践