简介
------
Swagger是一种用于描述、生产、消费和可视化RESTful风格的Web服务的标准。Spring Boot是一个快速构建应用程序的框架,广泛应用于Java开发中。整合Swagger可以更加方便地展示RESTful API的文档和测试工具。本文将介绍如何在Spring Boot 2.0中简单地整合Swagger,并展示API文档的基本配置和使用方法。

1. 添加Swagger相关依赖
------
首先,在`pom.xml`文件中添加Swagger相关的依赖。在Spring Boot 2.0及以上版本中,可以通过添加`springfox-boot-starter`依赖来集成Swagger。以下是一个示例依赖配置:


<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-boot-starter</artifactId>
    <version>2.9.2</version>
</dependency>

2. 配置Swagger相关注解
------
接下来,在Spring Boot应用程序的主类中添加Swagger的相关注解。使用`@EnableSwagger2`注解来启用Swagger,并在`@Configuration`注解的类中,使用`@Bean`注解注入一个`Docket`类型的Bean,用于配置Swagger的基本信息。以下是一个示例配置:


import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@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("API文档标题")
                .description("API文档描述")
                .version("1.0")
                .build();
    }
}

3. 启动应用程序并访问Swagger UI
------
配置完成后,启动Spring Boot应用程序,并访问`http://localhost:8080/swagger-ui.html`可以看到Swagger的用户界面。在该界面中,可以查看API文档、测试API接口,并进行其他相关操作。

4. 配置文档显示的Controller
------
有时候,我们可能只希望展示特定的Controller接口文档而不是整个项目的接口文档。这时,可以使用`@Api`注解来标识需要显示的Controller,并使用`@ApiOperation`注解来标识需要显示的接口。

例如,给定一个Controller类`UserController`和其中的两个接口方法`getAllUsers`和`getUserById`:


@RestController
@RequestMapping("/users")
@Api(tags = "用户管理")
public class UserController {

    @GetMapping("/")
    @ApiOperation(value = "获取所有用户", notes = "获取系统中的所有用户列表")
    public List<User> getAllUsers() {
        return userService.getAllUsers();
    }

    @GetMapping("/{id}")
    @ApiOperation(value = "根据用户ID获取用户信息", notes = "根据用户ID获取指定用户的详细信息")
    public User getUserById(@PathVariable Long id) {
        return userService.getUserById(id);
    }
}

在Swagger UI界面中,可以看到`用户管理`的标签,并在标签下展示`获取所有用户`和`根据用户ID获取用户信息`两个接口的详细信息。

总结
------
本文介绍了如何在Spring Boot 2.0中简单地整合Swagger,并展示了Swagger的基本配置和使用方法。通过添加Swagger的依赖、配置Swagger相关的注解以及启动应用程序并访问Swagger UI,可以方便地展示和测试RESTful API的文档。同时,还介绍了如何配置指定Controller的接口文档显示,使得文档更加清晰和易读。