背景说明
之前springboot开发的时候,每次都用一个框架,Java8和springboot2用了好久,一直都是用Swagger2生成接口文档。
前段时间换了Java17和springboot3,发现springfox+swagger2报错了,觉得是版本问题,就去maven仓库中找最新的swagger2的依赖版本,结果发现这东西好久没更新了,自然用在最新的技术里就不支持了。
找了好久发现Java17和springboot3已经不再支持springfox和swagger了,于是更换了springdoc生成swagger接口文档。
Swagger接口文档
可以参考的内容springdoc使用方法
依赖
xml
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>${spring-doc.version}</version>
</dependency>
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-api</artifactId>
<version>${spring-doc.version}</version>
</dependency>
访问地址
纯json地址http://localhost:10220/v3/api-docs
有ui的地址http://localhost:10220/swagger-ui/index.html
配置文件
yml
springdoc:
packages-to-scan: com.swaggerdemo.test.controller #扫描的接口类的包
api-docs:
enabled: true # 是否启用
path: /v3/api-docs #配置纯json地址
swagger-ui:
path: /swagger-ui.html #配置swagger ui的地址
配置类
分组
java
@Configuration
public class SwaggerConfig {
@Bean
public OpenAPI openAPI() {
return new OpenAPI()
.info(this.getApiInfo());
}
// 分组
@Bean("sysGroupApi")
public GroupedOpenApi sysGroupApi() {
return GroupedOpenApi.builder().group("系统模块组")
.pathsToMatch("/test/**") // 以/test开始的接口,右上角的分组
.build();
}
private Info getApiInfo() {
return new Info()
.title("标题")
.description("描述")
.summary("")
.version("版本");
}
}