swagger-ui升級(jí)到knife4j,帶給你新的體驗(yàn)

在前后端大行其道的時(shí)代,項(xiàng)目不引入swagger都o(jì)ut了?;艘幌挛绨裺wagger集成到項(xiàng)目中,并定義了接口信息,然而UI界面看著很不爽,看著一定都不專業(yè)。

api接口文檔.png

knife4j

knife4j是springfox-swagger的增強(qiáng)UI實(shí)現(xiàn),為Java開發(fā)者在使用Swagger的時(shí)候,能擁有一份簡潔、強(qiáng)大的接口文檔體驗(yàn)。

簡書瀏覽時(shí)看到一大牛介紹knife4j,覺得效果不錯(cuò),決定把項(xiàng)目升級(jí)到knife4j。

首先引入POM:

<dependency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>knife4j-spring-boot-starter</artifactId>
    <version>2.0.1</version>
    <exclusions>
        <exclusion>
            <groupId>io.springfox</groupId>
            <artifactId>*</artifactId>
        </exclusion>
        <exclusion>
            <groupId>io.swagger</groupId>
            <artifactId>*</artifactId>
        </exclusion>
    </exclusions>
</dependency>

這里排除io.springfox和io.swagger兩個(gè)包主要時(shí)為了防止jar包依賴沖突,前面已經(jīng)引用了swagger-starter。

然后修改配置:

@EnableSwagger2
public class SwaggerConfig implements WebMvcConfigurer {
      // ... 這里省略 swagger api 基礎(chǔ)配置信息
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources/");
        registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
    }
}

可以看到修改配置的主要目的時(shí)添加新的靜態(tài)資源,保證springmvc會(huì)到指定資源目錄加載knife4j 的前端資源文件。

最后將新增加的資源路徑配置為可匿名訪問,這里使用的是shiro安全框架,具體配置如下:

 chain.put("/doc.html", "anon");
 chain.put("/swagger-ui.html", "anon");

最后驗(yàn)證下效果:

knife4j接口文檔.png

雖然有點(diǎn)簡單,但還是有點(diǎn)小成就。

  • 在測試時(shí),knife4j測試結(jié)果不更新
  • 使用代理時(shí)最近了一級(jí)目錄,首頁地址正常,但是測試接口不能自動(dòng)追加。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容