SpringBoot整合Knife4j的实战示例
作者:阿黄学技术
Knife4j是一个为Java MVC框架集成Swagger生成API文档的增强解决方案,本文就来介绍一下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-ui tags-sorter: alpha operations-sorter: alpha api-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 { /** * 设置静态资源映射 */ @Override public 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创建分组 */ @Bean public GroupedOpenApi adminApi() { return GroupedOpenApi.builder() // 分组名称 .group("app-api") // 接口请求路径规则 .pathsToMatch("/**") .build(); } /** * 配置基本信息 */ @Bean public 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对应的版本是否匹配,不匹配就会报错
到此这篇关于SpringBoot整合Knife4j的实战示例的文章就介绍到这了,更多相关SpringBoot整合Knife4j内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!