需求描述
在使用Spring MVC
定义rest接口的时候,需要对返回值进行统一封装,我们通常会定义code、message、以及一个泛型的data,有时候泛型参数过长,会导致controller 方法返回值很长,我借助Spring的ResponseBodyAdvice
来做统一应答拦截,但是,swagger只会读取实际的方法返回类型作为应答。 如何使用swagger
来实现类似ResponseBodyAdvice
的功能呢?
Spring实现统一返回定义
通用返回状态定义
1 |
|
通用返回实体定义
1 |
|
通用返回值拦截定义
1 |
|
Swagger2插件处理通用返回拦截
maven配置文件
1 |
|
swagger配置类
1 |
|
至此就完成了Swagger2的参数配置
Swagger3插件处理通用返回拦截
由于代码基本与swagger2
差不多,我就只粘部分差异代码
maven配置文件
1 |
|
swagger配置类
1 |
|
测试
接口代码
1 |
|
测试结果
- get方法 自动添加统一应答包装
- put方法 使用默认返回