在 spring-boot 中使用 swagger-ui 設定 springfox
- 使用 Maven 或 Gradle 將 springfox 新增到你的應用程式中
- 在你的應用程式中建立一個新的 Docket bean 並對其進行配置
- 根據你的需求記錄你的 API
- 啟動你的應用程式並檢視你取得的成果
#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());