在 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());