Swagger-boostrap-ui如何配置用戶名密碼訪問
Swagger-boostrap-ui配置用戶名密碼訪問
配置文件書寫
swagger: production: false basic: enable: true username: XX password: XXX
Swagger類配置
@Configuration @EnableSwagger2 @EnableSwaggerBootstrapUI public class Swagger2 { private String basePackage="com.XXX"; private String title="XXX接口文檔"; /** * @Description:swagger2的配置文件,這里可以配置swagger2的一些基本的內(nèi)容,比如掃描的包等等 */ @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select() .apis(RequestHandlerSelectors.basePackage(basePackage)) .paths(PathSelectors.any()).build(); } /** * @Description: 構(gòu)建 api文檔的信息 */ private ApiInfo apiInfo() { return new ApiInfoBuilder() .title(title) .contact(new Contact("", "http://www.whbswdt.com", "")) .description("歡迎訪問武漢百勝開發(fā)接口文檔") .version("20.8.28").build(); } }
訪問文檔接口
接口文檔swagger-bootstrap-ui的使用
相信使用前后端分離的工程師都對(duì)接口文檔折磨過。無論是前端調(diào)用后端,還是后端調(diào)用后端,都期望有一個(gè)好的接口文檔。
而Swagger,我個(gè)人理解就是把相關(guān)的信息存儲(chǔ)在它定義的描述文件里面(yml或json格式),再通過維護(hù)這個(gè)描述文件可以去更新接口文檔,以及生成各端代碼,它能夠很好地化解前面所說的尷尬。
這樣項(xiàng)目開始時(shí)期,只要前端跟后端定義好返回的數(shù)據(jù)格式,就可以根據(jù)接口文檔進(jìn)行統(tǒng)一的規(guī)范,這樣數(shù)據(jù)規(guī)范起來之后,前端就不需要等到后端開發(fā)好接口才能知道具體的數(shù)據(jù)格式,前端使用mockjs模擬數(shù)據(jù)進(jìn)行開發(fā),大大節(jié)省了時(shí)間,同時(shí)也減少了不必要的溝通過程。
個(gè)人感覺原生的swagger-UI不太友好,所以在網(wǎng)上找到了swagger-bootstrap-ui,這是國(guó)人開發(fā)的ui包,感覺非常不錯(cuò)。
快速開始
引入maven包
由于是springfox-swagger的增強(qiáng)UI包,所以基礎(chǔ)功能依然依賴Swagger,springfox-swagger的jar包必須引入
<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </dependency>
然后引入SwaggerBootstrapUi的jar包
<dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>swagger-bootstrap-ui</artifactId> <version>1.9.6</version> </dependency>
當(dāng)前最新的是1.9.6版本
編寫Swagger2Config配置文件
Swagger2Config
配置文件如下:
@Configuration @EnableSwagger2 @EnableSwaggerBootstrapUI public class SwaggerConfiguration { @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.withClassAnnotation(RestController.class)) .paths(PathSelectors.any()) .build(); } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("接口文檔") .description("接口文檔") .build(); } }
這里官網(wǎng)有一個(gè)對(duì)新手不太友好的小坑,那就是Docket中的apis中設(shè)置包的掃描路徑,我之前是直接使用官網(wǎng)的配置類,沒有改變包的掃描路徑,導(dǎo)致文檔沒有顯示接口,而改成
RequestHandlerSelectors.withClassAnnotation(RestController.class)
之后就可以了,這樣算是使用了軟編碼吧!
訪問地址
swagger-bootstrap-ui默認(rèn)訪問地址是:http://${host}:${port}/doc.html
swagger2注解
給Controller類添加swagger2注解就生成相應(yīng)的接口文檔了。
例如:
@Api(value="/test1", tags="測(cè)試接口模塊") @RestController public class testContro { @ApiOperation("test") @GetMapping("/ha") public String test(){ return "test成功"; } @ApiOperation("Area刪除") @GetMapping("/a") public String ha(){ return "Area刪除成功"; } }
運(yùn)行項(xiàng)目之后就可以看到下面的效果:
最后
有了接口文檔之后,當(dāng)前后端分離開發(fā)的時(shí)候,只需要丟一個(gè)測(cè)試環(huán)境的文檔地址過去給前端就可以了,直接看著文檔進(jìn)行參數(shù)對(duì)接,同時(shí)這個(gè)接口文檔的調(diào)試功能也是非常不錯(cuò)的,有時(shí)候懶得寫單元測(cè)試,直接寫一個(gè)查詢的方法獲取數(shù)據(jù),再調(diào)用請(qǐng)求接口進(jìn)行調(diào)試也是非常方便的。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java線程池的幾種實(shí)現(xiàn)方法及常見問題解答
下面小編就為大家?guī)硪黄狫ava線程池的幾種實(shí)現(xiàn)方法及常見問題解答。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-05-05淺談java中Math.random()與java.util.random()的區(qū)別
下面小編就為大家?guī)硪黄獪\談java中Math.random()與java.util.random()的區(qū)別。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-09-09關(guān)于java中基本數(shù)據(jù)類型的數(shù)值范圍
這篇文章主要介紹了關(guān)于java中基本數(shù)據(jù)類型的數(shù)值范圍,基本類型,或者叫做內(nèi)置類型,是JAVA中不同于類的特殊類型,它們是我們編程中使用最頻繁的類型,需要的朋友可以參考下2023-07-07Java循環(huán)對(duì)bean的屬性進(jìn)行賦值的實(shí)現(xiàn)
本文主要介紹了Java循環(huán)對(duì)bean的屬性進(jìn)行賦值,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08Java中的HashMap和Hashtable區(qū)別解析
這篇文章主要介紹了Java中的HashMap和Hashtable區(qū)別解析,HashMap和Hashtable都實(shí)現(xiàn)了Map接口,但決定用哪一個(gè)之前先要弄清楚它們之間的區(qū)別,主要的區(qū)別有線程安全性、同步和速度,需要的朋友可以參考下2023-11-11Java高級(jí)-反射&動(dòng)態(tài)代理詳解
這篇文章主要介紹了Java高級(jí)-反射&動(dòng)態(tài)代理詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-03-03