- 将“responsewrapper-spring-boot-starter”添加到 Spring Boot 项目中。
Maven
<dependency>
<groupId>com.jetems</groupId>
<artifactId>responsewrapper-spring-boot-starter</artifactId>
<version>version</version>
</dependency>Gradle groovy
implementation 'com.jetems:responsewrapper-spring-boot-starter:version'Gradle kotlin
implementation("com.jetems:responsewrapper-spring-boot-starter:version")application.yml配置
response:
wrapper:
enable: true
# 排除不需要统一返回的包,例如可以排除swagger的包、graphql的包
exclude-packages:
- com.jetems.responsewrapper.a
# 错误码定义,将业务异常码和消息定义在这里
error-codes:
404: Resource not found
500: Internal Server Error
1001: 业务异常,参数错误
# 定义成功码和成功信息
success-code: 0
success-message: ok
# 如果需要捕获404错误,需要在application.yml中添加如下配置:
spring:
mvc:
throw-exception-if-no-handler-found: true
web:
resources:
add-mappings: false- 业务代码中使用
@NotResponseWrapper注解,可以不使用统一返回
@GetMapping("/test2")
@NotResponseWrapper
fun test2(): String {
return "responseWrapperProperties.enable.toString()"
}- 业务异常处理
@GetMapping("/bizerror")
fun bizerror(): ResponseWrapper<*> {
throw BizException(1001, "业务异常,参数错误")
}- 建议返回的数据使用
map包装,给数据一个有意义的key,这样可以让 data 里面的数据更有意义
@GetMapping("/test3")
fun test3(): Map<String, List<User>> {
val userList = listOf(User("张三", 18), User("李四", 19))
return mapOf("users" to userList)
}