在 spring-boot 中使用 swagger-ui 设置 springfox

  1. 使用 Maven 或 Gradle 将 springfox 添加到你的应用程序中
  2. 在你的应用程序中创建一个新的 Docket bean 并对其进行配置
  3. 根据你的需求记录你的 API
  4. 启动你的应用程序并查看你取得的成果

#1 使用 Maven 获取 springfox

在 pom.xml 中添加 swagger2 和 swagger-ui 的依赖项

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.6.0</version>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.6.0</version>
</dependency>

#2 配置应用程序以使用 swagger

将注释 @EnableSwagger2 添加到 @SpringBootApplication 注释的主类中,并在此(或任何其他)配置类中创建一个 swagger Docket bean。

@Bean
public Docket api() {                
    return new Docket(DocumentationType.SWAGGER_2)          
      .select()                                       
      .apis(RequestHandlerSelectors.any())
      .paths(PathSelectors.any())                     
      .build();
}

此配置将生成应用程序中所有弹簧控制器的 API 文档。如果你需要将 API 文档生成限制为某些控制器,则可以在各种 RequestHandlerSelectors 之间进行选择。例如,你可以使用 RequestHandlerSelectors.basePackage("your.package.structure") 或基于你使用 RequestHandlerSelectors.withClassAnnotation(Api.class) 注释的特定类,根据你的包结构生成 API 文档。

#3 记录你的 API

使用文档中描述的注释,以使用其他信息增强控制器类和方法。要描述 api 的一般信息,如一般标题,描述或版本,请在 Docket bean 中使用 ApiInfoBuilder()

使用 ApiInfoBuilder 进行元数据定义的示例:

// Within your configuration class
public static ApiInfo metadata(){
    return new ApiInfoBuilder()
            .title("Your Title")
            .description("Your Description")
            .version("1.x")
            .build();
}

// Within your method that definies the Docket bean...
docket.apiInfo(metadata());