最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

SpringBoot2.7.8整合Swagger3

2023-02-02 16:58 作者:楓憔葉波  | 我要投稿

為了方便編寫接口文檔,最近準備在框架中整合Swagger。

一開始整合了Swagger2,很順利,但是部長說要向前看,整個最新的。。。

好吧,那就Swagger3。

遇到不少問題,有億點折磨。

必要操作

  • 導入依賴

  • 在啟動項上添加注解@EnableOpenApi

  • 配置application(2.6及以上的SpringBoot整合Swagger3都需要配這一項)

這樣就可以通過網(wǎng)址localhost:8080/swagger-ui/index.html訪問Swagger了。

當然,前提是你的項目還沒有整合其他什么亂七八糟的東西。

下面就講一下我遇到的問題。

404

一種可能是WebMvc配置類繼承了WebMvcConfigurationSupport,這會覆蓋默認的靜態(tài)資源映射,導致Swagger的網(wǎng)頁也無法被找到。此時就自己在繼承了WebMvcConfigurationSupport的配置類中配置一下靜態(tài)資源映射。這里把靜態(tài)資源放在了"classpath:/static/"目錄下,大家也可以自己調(diào)整。

也可能是因為配置了攔截器,將Swagger攔截了下來,可以在配置中將Swagger相關請求放行。如果是shiro配置方式略有不同,不會可以度娘,反正不要攔截了就行。當然,因為攔截器的功能不同,也不是一定會對Swagger產(chǎn)生影響的,有需要或者求穩(wěn)就放行一下。

死循環(huán)

該問題指的是出現(xiàn)了以下彈窗,提示Unable to infer base url. This is common when using dynamic servlet registration or when the API is behind an API Gateway.?

直接搜這條提示也可以搜到一些解決方法,例如:

  1. blog.csdn.net/just_now_and_future/article/details/89343680

  2. blog.csdn.net/wjf8882300/article/details/107013993

  3. blog.csdn.net/LeeKitch/article/details/126967804

  4. blog.csdn.net/kikii233/article/details/116761596

反正還挺多的,五花八門,但是我一個個試下來都沒解決。讓人心態(tài)炸裂。

后來我是新建了一個空項目來嘗試整合,結(jié)果根本沒遇到這個問題!

我就對WebMvcConfig中的配置逐一排查了一下,發(fā)現(xiàn)是添加了請求前綴的原因:

我把這段代碼注釋掉后就可以順利打開Swagger頁面了。

PS:感謝評論區(qū)大佬Seasee_Yc?的指點,下面進行一點補充說明

Swagger頁面應該是由上圖的Controller來控制的,用到了@RestController注解,如果按照我的方式來添加請求前綴,對其也會產(chǎn)生影響,所以需要對addResourceHandlers方法進行調(diào)整,調(diào)整后如下:

然后Swagger的訪問地址也要調(diào)整為localhost:8080/api/v1/swagger-ui/index.html

如果不希望給Swagger添加請求前綴怎么辦呢?很簡單,將configurePathMatch方法中的RestController用自定義注解替換即可。具體的替換步驟可以參考:www.jianshu.com/p/dde81efadb09

我覺得吧,替換了也好,避免以后再出現(xiàn)這樣的問題。。。

可選操作

Swagger也可以自定義一些內(nèi)容,就是編寫Swagger的配置類,網(wǎng)上很多,不細嗦了。


SpringBoot2.7.8整合Swagger3的評論 (共 條)

分享到微博請遵守國家法律
美姑县| 达州市| 鹤峰县| 简阳市| 垫江县| 德令哈市| 枝江市| 双牌县| 突泉县| 册亨县| 科技| 东安县| 通山县| 自治县| 贵南县| 武夷山市| 定日县| 凉山| 南汇区| 墨玉县| 彩票| 黔西| 平泉县| 襄樊市| 温州市| 宝山区| 大兴区| 泗水县| 罗甸县| 高台县| 三台县| 尼木县| 宿迁市| 阜城县| 维西| 弥勒县| 福海县| 娱乐| 淄博市| 景德镇市| 库车县|