1. 程式人生 > 實用技巧 >給Swagger換一套面板 Knife4j整合記錄

給Swagger換一套面板 Knife4j整合記錄

Swagger有一套經典的UI,但是並不是很好用,之前有看到Knife4j,介面美觀、功能完善,因此嘗試整合。

demo參考示例地址:knife4j-spring-boot-demo

Knife4j前身是swagger-bootstrap-ui,是一個為Swagger介面文件賦能的工具

根據官方文件,整合非常方便。

maven引用

第一步,是在專案的pom.xml檔案中引入knife4j的依賴,如下:

<dependencies>
    <dependency>
        <groupId>com.github.xiaoymin</groupId>
        <artifactId>knife4j-spring-boot-starter</artifactId>
        <version>2.0.6</version>
    </dependency>
</dependencies>

當前最新版是2.0.6

如果你想使用bom的方式引入,請參考Maven Bom方式引用

建立Swagger配置檔案

新建Swagger的配置檔案SwaggerConfiguration.java檔案,建立springfox提供的Docket分組物件,程式碼如下:

@Configuration
@EnableSwagger2
@EnableKnife4j
@Import(BeanValidatorPluginsConfiguration.class)
public class SwaggerConfiguration {

    @Bean(value = "defaultApi2")
    public Docket defaultApi2() {
        Docket docket=new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                //分組名稱
                .groupName("2.X版本")
                .select()
                //這裡指定Controller掃描包路徑
                .apis(RequestHandlerSelectors.basePackage("com.swagger.bootstrap.ui.demo.new2"))
                .paths(PathSelectors.any())
                .build();
        return docket;
    }

}

以上有兩個註解需要特別說明,如下表:

註解 說明
@EnableSwagger2 該註解是Springfox-swagger框架提供的使用Swagger註解,該註解必須加
@EnableKnife4j 該註解是knife4j提供的增強註解,Ui提供了例如動態引數、引數過濾、介面排序等增強功能,如果你想使用這些增強功能就必須加該註解,否則可以不用加

spring-security 免認證

/**/doc.html/** 加入:

    private String[] getSwaggerUrl() {
        List<String> urls = new ArrayList<String>();
        urls.add("/**/swagger-resources/**");
        urls.add("/**/webjars/**");
        urls.add("/**/doc.html/**");
        urls.add("/**/v2/**");
        urls.add("/**/swagger-ui.html/**");
        return urls.toArray(new String[urls.size()]);
    }
	
	
	http.authorizeRequests()
	 .antMatchers(getSwaggerUrl()).permitAll()

測試訪問

在瀏覽器輸入地址:http://host:port/doc.html

可以設定全域性引數:

支援線上除錯

離線文件支援匯出md、pdf等

最後

前端如何更優雅的呼叫api呢?參考:

Vue 使用typescript, 優雅的呼叫swagger API

後面有空,可以將這個整合到knife4j


作者:Jadepeng
出處:jqpeng的技術記事本--http://www.cnblogs.com/xiaoqi
您的支援是對博主最大的鼓勵,感謝您的認真閱讀。
本文版權歸作者所有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,否則保留追究法律責任的權利。