給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
您的支持是對博主最大的鼓勵,感謝您的認真閱讀。
本文版權歸作者所有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章