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接口时的错误处理实践

Spring Boot 服务间通信异常处理

在spring boot微服务中,休息调用的调度不工作。

带有 MySql DB 的 Spring Boot JPA - 映射日期以错误的日期结束(休息 1 天)

spring boot 生成错误的sql代码

Spring boot错误处理以及定制错误页面