SpringBoot实战:整合Knife4j
本文介绍Knife4j快速整合SpringBoot开发接口。
一,Knife4J介绍
Knife4j 是一个为 Java MVC 框架集成 Swagger 生成 API 文档的增强解决方案,前身是 Swagger-Bootstrap-UI。相比于Swagger,Knife4j提供了更美观、现代化的 UI 界面,增强了交互性。
二,Knife4J和SpringBoot版本关系
三,整合步骤
1. 配置环境
JDK:17
SpringBoot:3.4.5
Knife4j:4.5.0
2. 引入依赖
<dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId><version>4.5.0</version>
</dependency>
3. 添加配置信息
在application.yml里面添加配置
# springdoc-openapi项目配置
springdoc:swagger-ui:#自定义swagger前端请求路径,输入http:localhost:8080/swagger-ui会自动重定向到swagger页面path: /swagger-uitags-sorter: alphaoperations-sorter: alphaapi-docs:path: /v3/api-docs #swagger后端请求地址enabled: true #是否开启文档功能group-configs: #分组配置,可配置多个分组- group: 'default' #分组名称paths-to-match: '/**' #配置需要匹配的路径packages-to-scan: com.cms #配置要扫描包的路径,一般配置到启动类所在的包名- group: 'admin-api'paths-to-match: '/**'packages-to-scan: com.cms
4. 定义配置类
WebMvcConfig配置SpringMVC信息
/*** web层配置类,实现静态资源映射,将knife4j相关资源放行,保证生成的接口文档能够正常进行展示* @author Hva*/
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {/*** 设置静态资源映射*/@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {// 添加静态资源映射规则registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");//配置 knife4j 的静态资源请求映射地址registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/");registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");}
}
配置Knife4j配置信息
/*** Knife4j整合Swagger3 Api接口文档配置类* @author Hva*/
@Configuration
public class Knife4jConfig {/*** 创建了一个api接口的分组* 除了配置文件方式创建分组,也可以通过注册bean创建分组*/@Beanpublic GroupedOpenApi adminApi() { return GroupedOpenApi.builder()// 分组名称.group("app-api")// 接口请求路径规则.pathsToMatch("/**").build();}/*** 配置基本信息*/@Beanpublic OpenAPI openAPI() {return new OpenAPI().info(new Info()// 标题.title("Knife4j整合Swagger3 Api接口文档")// 描述Api接口文档的基本信息.description("Knife4j后端接口服务...")// 版本.version("v1.0.0")// 设置OpenAPI文档的联系信息,姓名,邮箱。.contact(new Contact().name("Hva").email("Hva@163.com"))// 设置OpenAPI文档的许可证信息,包括许可证名称为"Apache 2.0",许可证URL为"http://springdoc.org"。.license(new License().name("Apache 2.0").url("http://springdoc.org")));}
}
5. 创建测试类Controller
DemoController
@RestController
@RequestMapping("demo")
public class DemoController {@GetMapping("test")@Operation(summary = "测试问好", description = "测试问好")@Tag(name = "问好", description = "问好")public String demo() {return "Hello Knife4j";}}
6. 启动项目调试Knife4j接口
如果一切配置正确,启动SpringBoot项目,并访问url地址:localhost:8080/doc.html(ip:port/doc.html),就可以看到knife4j的界面。
在左上角选择对应的分组,再选择api接口进行测试
四. 踩坑日志
1. 项目不能启动报错
首先检查knife4j和springboot对应的版本是否匹配,不匹配就会报错