springboot整合Swagger2,实现对接口的版本管理
1. 需求
测试同学有需求,对于接口,之前的版本是1.0,现在是1.1版本,我想要知道1.1新增了什么接口,或者说修改了什么接口,怎么办?
2. 细化需求
我们用分组来实现,分组在代码里就是 Docket,如图
- 我们希望有一个默认的分组,所有的接口都放在这里,并且是排在最前面的
- 被标记的接口能归类到 v2.7.3里
- 一个接口可以同时被归类到多个地方,比如同时属于默认、v2.7.3、v2.8
- 用于标记的注解,可以放在方法上,相当于全部接口都标注了;有可以单独标注在某个方法;标注在方法具有较高的优先级
3. 如何实现
3.1 如何共存多套UI
其实是可以共存多个UI的,实际测试可行。注意有时候会发现其中一个UI能刷出来另外一个不行,可以稍微等一等再试,或者调换下一下两个UI的顺序再试下。总之我遇到过 “其中一个UI可以另外一个不行” 的情况,但是最终发现 “两个UI可以并存”
3.2 步骤
-
新建springboot项目,或者在已有项目,在pom.xml中增加
<!-- Swagger2 BEGIN --> <!-- swagger2包中swagger-models版本有bug,example为空串会爆出NumberFormatException,需要排除并引入高版本 排除时将 swagger-models 和 swagger-annotations 整一对排除 --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> <exclusions> <exclusion> <groupId>io.swagger</groupId> <artifactId>swagger-models</artifactId> </exclusion> <exclusion> <groupId>io.swagger</groupId> <artifactId>swagger-annotations</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>io.swagger</groupId> <artifactId>swagger-models</artifactId> <version>1.6.0</version> </dependency> <dependency> <groupId>io.swagger</groupId> <artifactId>swagger-annotations</artifactId> <version>1.6.0</version> </dependency>