1.本地工作环境
ide2021
jdk17
springboot3.0.11-SNAPSHOT
2.使用knife4j-openapi3的原因
在使用springboot3写完一个项目后,想快速生成一篇接口文档,供自己观看。在网上冲浪一段时间后,发现使用Swagger文档比较合适,通过少量的注解来完成一篇复杂的文档。说干就干,直接cope网上的资料写一个demo来用,发现项目无法正常启动。在翻阅了博客后,发现Swagger2暂时无法适配springboot3。后再其他博客中发现可以使用openapi兼容springboot3,同时,knife4j是对swagger的美化,所以使用knife4j-openapi3。
3.进行配置
对应的依赖如下:
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
<version>4.1.0</version>
</dependency>
配置文件采用yml格式,所以在配置中对knife4j进行如下简单配置
# 在线文档配置
springdoc:
swagger-ui:
# 配置swagger-ui界面访问路径
path: /swagger-ui.html
# 包扫描路径
packages-to-scan: com.pjx.sys.controller
# 默认开启wend
api-docs:
enabled: true
上述的 packages-to-scan 也就是包扫描路径,是对控制层进行扫描,也就是你的controller层,只要扫描到外面那一层,不要深入到内部。路径可以直接复制。
此时还需对knife4j进行配置,才可以使用。
在自己的项目中创建SwaggerConfig类进行配置
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Contact;
import io.swagger.v3.oas.models.info.Info;
import io.swagger.v3.oas.models.info.License;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class SwaggerConfig {
@Bean
public OpenAPI springShopOpenAPI() {
return new OpenAPI()
.info(new Info().title("标题")
//描叙
.description("我的API文档")
//版本
.version("v1")