先看一下升级前后的UI对比,反正我是喜新厌旧了,knife4j不但UI更加好看,还加入了接口统计图,各种请求方式的接口进行了统计,并且添加了接口搜索功能,项目中接口很多,使用swagger的时候需要一个一个找,太痛苦了。。。。
升级前
![](https://i-blog.csdnimg.cn/blog_migrate/34cc2d53364e0263ce7bd210752bd3ad.png)
升级后
![](https://i-blog.csdnimg.cn/blog_migrate/b94c46757bf49e93e8325d54921f584e.png)
升级步骤
第一步:替换依赖
删除或者注释掉原来swagger的依赖:
<!--整合Swagger时使用-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<!--整合Swagger时使用-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
引入knife4j 的依赖:
<!-- knife4j -->
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>2.0.2</version>
</dependency>
第二步:在swagger的配置类上添加@EnableKnife4j注解
重启项目,访问接口文档
注意:swagger2升级knife4j 后访问地址变了。
swagger接口文档地址:http://localhost:8080/swagger-ui.html
knife4j接口文档地址: http://localhost:8080/doc.html
第三步:请求参数文档和响应参数文档
// 接口说明的注解 @ApiOperation
@ApiOperation("查询队伍详情接口")
@GetMapping("/queryYjTeam")
// 生成请求参数文档的注解@ApiImplicitParam
@ApiImplicitParam(name = "teamId",value = "队伍ID",required = true)
// 生成响应参数文档的注解@ApiResponses
@ApiResponses({
@ApiResponse(code = 200,message = "ok",response = YjTeamVo.class)
})
public Result queryYjTeams(String teamId){
return yjTeamService.queryYjTeam(teamId);
}
YjTeamVo响应参数封装实体:
@Data
@Table(name = "T_YJ_TEAM")
@ApiModel(value = "队伍实体",description = "存储队伍信息")
public class YjTeamVo implements Serializable {
private static final long serialVersionUID = -7873387444935908357L;
@Id
@ApiModelProperty(value = "队伍ID",required = false)
private String teamId;
@ApiModelProperty(value = "队伍名称",required = true)
private String teamName;
@ApiModelProperty(value = "队伍头像图",required = true)
private String teamHeadPicture;
}