接swagger很傻x的一次教訓


這兩天在搭建項目用到了swagger,遇到了不少坑,可以說是完全沒必要踩到的坑,卻讓我浪費了許久時間,確實很難受,記錄下來,以此為教訓!

先說明下: 版本號為:springboot2.x、swagger2.7+ 我遇到了很多問題,第一個: file

上面那個錯表示swagger沒有配置好,即配置問題

找原因:找swagger-ui.html 請求分發過程, file 沒有找到swagger-ui的hmtl,返回error,,緊接着,看一下頁面報404的接口,去掉null訪問一下, file

訪問成功!

file 於是在springmvc的源碼上定位該接口的bean,即public org.springframework.http.ResponseEntity springfox.documentation.swagger.web.ApiResourceController.uiConfiguration() file

定位到該接口,查看其源碼,即 file

於是在請求一下,得到它的數據,以及返回值!這個時候得到了一個關鍵的線索點,它的返回值!!! 在查看了項目的統一返回值包裝類之后恍然大悟,這特么是我的封裝類將swagger本身的返回值結構打破了,所以swagger沒有解析到 正確的返回值,所以會報這個錯,藍瘦~ file

如下,是我們的返回值和swagger自己定義的返回值: file file

結果已經很明了了!就是我們的包的作用范圍的原因,應該縮小一下范圍,即加入下面代碼: java @RestControllerAdvice(basePackages = "com.xxxxx.controller")

得此解決!

當然  還有另外一個原因,就是swagger的配置問題,一定要掃描當前controller的包,不然也是沒有


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM