Swagger 是一个 API 文档生成工具,可以帮助你快速生成和查看 API 文档。在 Spring Boot 项目中,可以使用 springfox-swagger2 和 springfox-swagger-ui 库来集成 Swagger。以下是如何在 Spring Boot 项目中配置 Swagger 的详细说明,以及一个示例:
- 添加依赖
在 pom.xml
文件中添加 springfox-swagger2 和 springfox-swagger-ui 依赖:
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
- 创建 Swagger 配置类
创建一个名为 SwaggerConfig
的配置类,并使用 @EnableSwagger2
注解启用 Swagger 支持:
import.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.example.demo.controller"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("Spring Boot REST API")
.description("Spring Boot REST API 示例")
.version("1.0.0")
.contact(new Contact("Your Name", "yourwebsite.com", "[email protected]"))
.build();
}
}
在这个配置类中,我们创建了一个 Docket
Bean,用于配置 Swagger 文档的生成规则。我们指定了 API 文档的基本信息,如标题、描述、版本和联系方式。我们还通过 RequestHandlerSelectors.basePackage
方法指定了要扫描的包,以便 Swagger 只生成指定包下的 API 文档。
- 访问 Swagger UI
启动 Spring Boot 项目后,访问 http://localhost:8080/swagger-ui.html
,你将看到 Swagger UI 页面,其中包含了你的 API 文档。
- 示例
假设你有一个名为 UserController
的控制器类,如下所示:
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/users")
@Api(tags = "用户管理")
public class UserController {
@GetMapping
@ApiOperation("获取所有用户")
public List<User> getAllUsers() {
// ...
}
@GetMapping("/{id}")
@ApiOperation("根据 ID 获取用户")
public User getUserById(@PathVariable("id") Long id) {
// ...
}
}
在这个控制器类中,我们使用了 @Api
和 @ApiOperation
注解来为 Swagger 提供更多关 API 的信息。启动项目后,访问 Swagger UI 页面,你将看到这些信息已经包含在 API 文档中。
这就是在 Spring Boot 项目中配置 Swagger 的详细说明和示例。你可以根据自己的需求调整 Swagger 配置和注解。