knife4j是一个Swagger的增强工具,能够完善项目的接口文档。
官网:
Knife4j · 集Swagger2及OpenAPI3为一体的增强解决方案. | Knife4j
Swagger的生成的默认文档确实不好用(不美观、不支持搜索、不能导出)
在Swagger2中使用
想一想是怎么配置Swagger2的:
- 将Docket的Bean提供出去
- 然后在配置类上开启
@EnableSwagger2
只需要在原先Swagger的基础上,引入knif4j的依赖即可。
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-openapi2-spring-boot-starter</artifactId>
<version>4.1.0</version>
</dependency>
建议直接引入knife4j的依赖,因为knif4j中已经集成了swagger的依赖,swagger相关的依赖也会自动导入
既然是一个增强工具,那么原先Swagger中怎么写的,依然怎么写,knife4j不会做出改变。
只是最后生成的文档更强大、漂亮了。
然后访问ip:port/doc.html
就能看到生成的文档
在Swagger3中使用
Swagger 规范已于 2015 年捐赠给 Linux 基金会后改名为 OpenAPI,并定义最新的规范为 OpenAPI 3.0。所以现在的 Swagger 3.0 就是 OpenAPI 3.0。
官方文档配置
快速开始 | Knife4j
在SpringBoot3.X中,只支持OpenAPI3的规范。
跟Swagger2差不多,只是将@EnableSwagger2
换成@EnableOpenAPI
Swagger、SpringFox、SpringDoc、OpenAPI的关系
下面的图片全来自于下面的文章:
Swagger2在2015年之后贡献给Apache,然后又推出了新的版本,可以理解为Swagger3,定义了新的规范,并将这个规范更名为OpenAPI。
所以可以认为Swagger3就是OpenAPI3。
OpenAPI3就是OpenAPI的第一个版本的规范。
巨人的肩膀
Spring Boot 中使用 SpringFox 整合 Swagger 3(OpenAPI 3)生成 API 文档 - 掘金