目录:
- SpringDoc简介
- 依赖
- 配置文件
- 配置类
- 接口
- 访问API页面
参考
SpringDoc简介
SpringDoc是一款可以结合SpringBoot使用的API文档生成工具,基于OpenAPI 3
,目前在Github上已有1.7K+Star
,更新发版还是挺勤快的,是一款更好用的Swagger库!值得一提的是SpringDoc不仅支持Spring WebMvc项目,还可以支持Spring WebFlux项目,甚至Spring Rest和Spring Native项目,总之非常强大,下面是一张SpringDoc的架构图:
依赖
<!--springdoc 官方Starter -->
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
<version>1.6.6</version>
</dependency>
我使用的Springboot的版本是2.6.7
配置文件
server:
port: 80
servlet:
context-path: /
springdoc:
swagger-ui:
# 修改Swagger UI路径
path: /swagger-ui.html
# 开启Swagger UI界面
enabled: true
api-docs:
# 修改api-docs路径
path: /v3/api-docs
# 开启api-docs
enabled: true
# 配置需要生成接口文档的扫描包
packages-to-scan: com.jason.controller
# 配置需要生成接口文档的接口路径
paths-to-match: /test/**,/admin/**
配置类
@Configuration
public class SpringDocConfig {
/**
* 基本信息设置
* @return
*/
@Bean
public OpenAPI mallTinyOpenAPI() {
return new OpenAPI()
.info(new Info().title("Test API").description("SpringDoc API 演示").version("v1.0.0")
.license(new License().name("Apache 2.0").url("https://github.com/jason-qianhao")))
.externalDocs(new ExternalDocumentation().description("Jason Blog")
.url("http://jason-qianhao.github.io"));
}
/**
* 分组设置
* @return
*/
@Bean
public GroupedOpenApi publicApi() {
return GroupedOpenApi.builder().group("test").pathsToMatch("/test/**").build();
}
@Bean
public GroupedOpenApi adminApi() {
return GroupedOpenApi.builder().group("admin").pathsToMatch("/admin/**").build();
}
}
接口
@Tag(name = "TestController", description = "测试SpringDoc")
@RestController
@RequestMapping("/test")
public class TestController {
@Operation(summary = "test1", description = "进行SpringDoc的test1")
@GetMapping("/test1")
public String test1() {
return "test1";
}
@Operation(summary = "test2", description = "进行SpringDoc的test2")
@GetMapping("/test2")
public String test2(@Parameter(description = "test2的参数") String param) {
return "test2 ---" + param;
}
}
访问API页面
启动项目,访问http://localhost/swagger-ui.html
即可看到SpringDoc生成的API页面: