SpringBoot整合Swagger3
灰羽 Lv3

Swagger 是一个广泛使用的开源工具,专为简化 RESTful API 的设计、文档化、测试和集成而创建。它基于 OpenAPI Specification(以前称为 Swagger Specification),这是一种行业标准,用于定义 REST API 的结构和行为。

引入依赖

1
2
3
4
5
6
<!--swagger-->
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>2.4.0</version>
</dependency>

配置文件

1
2
3
4
# 配置swagger文档的访问路径
springdoc:
swagger-ui:
path: /swagger-ui.html

配置类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@Configuration
public class SwaggerConfig {

@Bean
public OpenAPI springShopOpenAPI() {
return new OpenAPI()
.info(new Info().title("标题")
.description("我的API文档")
.version("v1")
.license(new License().name("Apache 2.0").url("http://springdoc.org")))
.externalDocs(new ExternalDocumentation()
.description("外部文档")
.url("https://springshop.wiki.github.org/docs"));
}

}

@SecurityScheme(type = SecuritySchemeType.HTTP, name = "JWT", scheme = "bearer", in = SecuritySchemeIn.HEADER)

@SecurityScheme 注解就是自定义的认证模式,配置请求头携带 token

分组:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
@Bean
public GroupedOpenApi userApi() {
return GroupedOpenApi.builder()
.group("user")
.pathsToMatch("/user/**")
.build();
}
@Bean
public GroupedOpenApi publicApi() {
return GroupedOpenApi.builder()
.group("public")
.pathsToMatch("/public/**")
.build();
}

常见注解

  • @Tag(name="用户操作",description = "用户的一系列操作") 用在 controller 类上
  • @Operation(summary = "查询所有用户")用在具体方法上
  • @Parameter(name = "username",description = "测试") 用在具体参数前
  • @Schema(name = "user",description = "用户表")用在实体类上

访问

http://localhost:8080/swagger-ui/index.html