java - Spring Boot Rest 服务错误处理

标签 java rest spring-mvc spring-boot swagger

有多种方法可以在rest api调用的错误响应中发送自定义消息。 这是最好的方法:

1.一种方法是使用 io.swagger.annotations ,例如 @ApiResponses(value = { @ApiResponse(code = 500, message = "错误消息", response=ErrorDescription.class) }) 以上方法签名。

2.另一种方法是在全局异常处理程序上定义@ControllerAdvice

两种方式哪个更好。

谢谢

最佳答案

您使用 swagger 注释的第一种方法不会处理应用程序中的错误。它仅用于文档目的,以便您可以了解 API 在错误情况下的行为方式。使用此注释,您可以为 REST 端点自定义 swagger-ui.html 页面,并将错误代码映射到特定响应对象,并为您的客户端添加自定义描述。

真正处理,例如具有自定义响应类型和消息的异常,您可以使用@ControllerAdvice并定义结果类型和消息。此外,我还会使用 Swagger 注释来编写一些有关错误情况的文本,并告诉客户端他可以期望哪个响应对象。

以下博客文章可能会帮助您编写 @ControllerAdvice 类:http://niels.nu/blog/2016/controller-advice-exception-handlers.html

关于java - Spring Boot Rest 服务错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51117618/

相关文章:

java - 如何将 String 值转换为 Pointer<Byte> (Java, JNAerator)?

java - 在 rpi 上使用 minim 时出现断断续续/断断续续的音频

api - Powershell - TLS1.2 支持

java - 为什么我得到 org.codehaus.jackson.map.JsonMappingException : No suitable constructor found for type

java - ARCore虚拟物体运动

java - Intellij tomcat 本地运行配置——幕后发生了什么?

ruby-on-rails - "render :nothing => true"返回空的纯文本文件?

rest - 是否可以构建查询HDFS数据的REST接口(interface)?

java - 在 hibernate 中使用 "IN"运算符

spring - 如何将多个对象添加到 ModelAndView 中?