Swagger-boostrap-ui如何配置用戶名密碼訪問
Swagger-boostrap-ui配置用戶名密碼訪問
配置文件書寫
swagger:
production: false
basic:
enable: true
username: XX
password: XXXSwagger類配置
@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的使用
相信使用前后端分離的工程師都對接口文檔折磨過。無論是前端調(diào)用后端,還是后端調(diào)用后端,都期望有一個好的接口文檔。
而Swagger,我個人理解就是把相關(guān)的信息存儲在它定義的描述文件里面(yml或json格式),再通過維護(hù)這個描述文件可以去更新接口文檔,以及生成各端代碼,它能夠很好地化解前面所說的尷尬。
這樣項目開始時期,只要前端跟后端定義好返回的數(shù)據(jù)格式,就可以根據(jù)接口文檔進(jìn)行統(tǒng)一的規(guī)范,這樣數(shù)據(jù)規(guī)范起來之后,前端就不需要等到后端開發(fā)好接口才能知道具體的數(shù)據(jù)格式,前端使用mockjs模擬數(shù)據(jù)進(jìn)行開發(fā),大大節(jié)省了時間,同時也減少了不必要的溝通過程。
個人感覺原生的swagger-UI不太友好,所以在網(wǎng)上找到了swagger-bootstrap-ui,這是國人開發(fā)的ui包,感覺非常不錯。
快速開始
引入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)有一個對新手不太友好的小坑,那就是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="測試接口模塊")
@RestController
public class testContro {
@ApiOperation("test")
@GetMapping("/ha")
public String test(){
return "test成功";
}
@ApiOperation("Area刪除")
@GetMapping("/a")
public String ha(){
return "Area刪除成功";
}
}運(yùn)行項目之后就可以看到下面的效果:

最后
有了接口文檔之后,當(dāng)前后端分離開發(fā)的時候,只需要丟一個測試環(huán)境的文檔地址過去給前端就可以了,直接看著文檔進(jìn)行參數(shù)對接,同時這個接口文檔的調(diào)試功能也是非常不錯的,有時候懶得寫單元測試,直接寫一個查詢的方法獲取數(shù)據(jù),再調(diào)用請求接口進(jìn)行調(diào)試也是非常方便的。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用Java和SNMP4J實現(xiàn)SNMP操作完整代碼
這篇文章主要介紹了如何使用Java和SNMP4J庫進(jìn)行SNMP操作,包括初始化SNMP、創(chuàng)建目標(biāo)、創(chuàng)建PDU、發(fā)送SNMP請求和處理響應(yīng)等內(nèi)容,通過編寫SnmpUtil類,展示了完整的SNMP操作流程,需要的朋友可以參考下2024-12-12
SpringBoot使用flyway初始化數(shù)據(jù)庫
這篇文章主要介紹了SpringBoot如何使用flyway初始化數(shù)據(jù)庫,幫助大家更好的理解和學(xué)習(xí)使用SpringBoot框架,感興趣的朋友可以了解下2021-03-03
在springboot中注入FilterRegistrationBean不生效的原因
這篇文章主要介紹了在springboot中注入FilterRegistrationBean不生效的原因及解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08
Java TreeSet實現(xiàn)學(xué)生按年齡大小和姓名排序的方法示例
這篇文章主要介紹了Java TreeSet實現(xiàn)學(xué)生按年齡大小和姓名排序的方法,涉及java類型轉(zhuǎn)換、遍歷、比較等相關(guān)操作技巧,需要的朋友可以參考下2017-09-09
MyBatis-Plus TypeHander不生效的問題解決
MyBatis-Plus中使用lambdaUpdate更新JSON字段時,TypeHandler未生效導(dǎo)致數(shù)據(jù)截斷錯誤,需手動轉(zhuǎn)換或顯式指定typeHandler解決,下面就來介紹一下該問題的解決2025-08-08

