一、簡介
Swaggerknife4j是一個基於swagger的API文檔生成工具,它能夠根據Java代碼生成RESTful API文檔,並提供一些額外的功能,例如在線調試和測試接口。它可以讓開發人員輕鬆地理解API,以及與API交互的方式。
Swaggerknife4j不僅提供了更好的文檔和測試接口功能,還針對swagger-ui做了一些優化,例如減少加載時間、增加搜索功能,並且它支持自定義錯誤響應和修改默認UI。
一般情況下,當使用swagger生成API文檔時,需要為每個API編寫注釋,並且將文檔與代碼保持同步。這使得文檔維護變得非常繁瑣,並且容易出現錯誤。而swaggerknife4j可以幫助您快速自動生成API文檔,並與代碼保持同步。
二、安裝和配置
安裝swaggerknife4j非常簡單,只需要在Maven POM文件中添加以下依賴項:
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>swagger-bootstrap-ui</artifactId>
<version>1.9.9</version>
</dependency>
默認情況下,swaggerknife4j使用的是swagger-ui 2.x版本,因此您還需要將以下的依賴項添加到您的Maven POM文件中:
<dependency>
<groupId>org.webjars</groupId>
<artifactId>swagger-ui</artifactId>
<version>2.2.10</version>
</dependency>
然後,您需要在你的SpringBoot項目中添加swagger2和swagger-ui的相關配置信息:
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.example.demo.controllers"))
.paths(PathSelectors.any())
.build()
.securitySchemes(Lists.newArrayList(apiKey()));
}
private ApiKey apiKey() {
return new ApiKey("token", "token", "header");
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("Spring Boot API文檔")
.description("API文檔")
.version("1.0")
.build();
}
}
以上的代碼使用了演示的SpringBoot項目的controller包下的Restful API註解作為API的展示範例。
注意事項:
- 在createRestApi()方法中添加自己的API組名,或者更換具體項目的包下API
- 在apiKey方法中添加自定義參數以實現token,然後就可以在REST API中使用header參數token作為Authentication信息了。
三、使用說明
在完成安裝和配置之後,您可以訪問http://localhost:8080/swagger-ui.html來查看生成的API文檔。文檔會列出所有API,它們的參數和返回類型信息,以及如何在API調試界面中調用它們。
swaggerknife4j還提供了一些自定義配置選項,例如更改API的描述信息、設置API的默認響應、隱藏API、設置API訪問控制和設置全局響應headers。這些配置選項可以通過使用@ControllerAdvice或@GlobalResponseWrapper注釋來實現。
以下是一個使用@ControllerAdvice來設置全局響應headers的示例代碼:
@ControllerAdvice
public class GlobalResponseHeaders {
@ModelAttribute
public void setHeaders(Model model) {
model.addAttribute("responseHeaders", ImmutableMap.of(
"X-Content-Type-Options", "nosniff",
"X-Frame-Options", "DENY"
));
}
}
更多示例請參考swaggerknife4j的官方文檔。
四、樣式優化
你可以使用自定義Swagger主題來定製您的API文檔的外觀,並增加一些額外的功能。例如,在您的API文檔中添加標籤、增加搜索功能或者自定義生成的文檔的樣式。
下面是一個創建自定義Swagger主題的示例代碼:
@Configuration
@EnableSwaggerBootstrapUI
public class SwaggerBootstrapUiConfig {
@Bean
public SwaggerResourcesProvider swaggerResourcesProvider() {
return new SwaggerBootstrapUiResourceProvider();
}
@Bean
public SwaggerBootstrapUiConfig swaggerBootstrapUiConfig() {
return SwaggerBootstrapUiConfigBuilder.builder()
.title("API文檔")
.description("API文檔")
.version("1.0")
.build();
}
}
以上代碼中使用了SwaggerBootstrapUiConfigBuilder,SwaggerBootstrapUiResourceProvider和SwaggerBootstrapUiConfig等類,來設置生成文檔的樣式。
更多示例請參考swaggerknife4j的官方文檔。
五、總結
Swaggerknife4j是一個非常優秀的基於swagger的API文檔生成工具,它不僅提供了更好的文檔和測試接口,而且在swagger-ui上做了很多優化並支持自定義配置選項。同時,它也可以幫助開發人員減輕文檔維護的負擔,並與代碼保持同步。因此,對於需要自動生成API文檔的開發人員來說,swaggerknife4j是一個非常不錯的選擇。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/151385.html
微信掃一掃
支付寶掃一掃