對于現(xiàn)在前后端分離的架構(gòu)但荤,在調(diào)用API的時候,都需要使用token或者access-token的參數(shù)在header中涧至,那么在使用Swagger2的時候想在所有的API文檔的前部添加公共的需要傳入的參數(shù)腹躁,研究了半天,終于成功了南蓬,分享一下纺非;
-
swagger2的依賴:
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.6.1</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.6.1</version>
</dependency>
2.創(chuàng)建config配置類哑了,用于配置swagger的相關(guān)信息:
2.1 使用的注解:
@Configuration -- 標志配置類;
@EnableSwagger2 -- 啟用swagger2烧颖;
--- 我看在網(wǎng)上弱左,還有使用@EnableWebMvc的注解,但我沒有用炕淮,也是可以滴拆火;
2.3: Docket對象:該對象用來配置文檔顯示的主要的信息;比如:掃描的controller包涂圆;以及該組API文檔顯示的名稱们镜;該組需要過濾的接口;公共參數(shù)的設置润歉;上配置:
注釋.png
本來想上傳代碼憎账,但是這個文本編譯器顯示的不是很理想,就直接上圖片吧卡辰;
公共參數(shù)部分胞皱,有的大牛會在Docket外面創(chuàng)建一個static靜態(tài)的代碼塊存放,并初始化九妈。但是我試了以后會報空指針異常反砌,所以就放在Docket里面;defaultValue()占位符可以不用要萌朱;
Docket里面重要的是select()后面的apis(Predicates.or(RequestHandlerSelectors.basePackage(""))) --該選擇用于定義該Docket掃描的controller包宴树,就可以將不同的controller分組使用,比如App的controller api 或者 后臺的api晶疼,通過groupName()分組命名酒贬;Paths(),里面定義該分組需要過濾的API,可以使用正則匹配翠霍,也可以選擇any(),所有的锭吨。如果在這里包配置錯了或者路徑匹配錯了,啟動的時候就會報空指針異常寒匙,導致項目啟動失斄闳纭;通過globalOperationParameters()選項锄弱,將通用的參數(shù)集合添加進來考蕾,就可以了啟用了;
對應的ui上的頁面上会宪,上圖:
頁面.png
3:ApiInfo對象:
該對象很簡單肖卧,就是定義左上角的信息,比如該文檔的名稱掸鹅,對應的描述塞帐,以及作者的信息等沟沙;
4 這次踩得坑比較多的就是空指針異常,以及頁面顯示不出來壁榕,甚至接口顯示不出來的狀況矛紫。這些錯誤,不出意外的話都是配置錯誤牌里。還有就是static靜態(tài)代碼塊颊咬,建議不要使用靜態(tài)代碼塊初始化,否則會報錯牡辽;