https://springdoc.org/
可能原因分析 🔍
原因 1:SpringFox 版本與 Spring Boot 版本不兼容 ?
SpringFox 3.0.0 不完全兼容 Spring Boot 2.6+ 及更高版本,可能導致 NullPointerException。
Spring Boot 3.x 完全不支持 SpringFox,必須使用 springdoc-openapi 替代。
java spring boot Swagger 安裝及使用
在前后端分離開發的過程中,前端和后端需要進行api對接進行交互,就需要一個api規范文檔,方便前后端的交互,但api文檔不能根據代碼的變化發生實時動態的改變,這樣后端修改了接口,前端不能及時獲取最新的接口,導致調用出錯,需要手動維護api文檔,加大了開發的工作量和困難,而swagger的出現就是為了解決這一系列的問題。
Swagger是一套基于OpenAPI規范構建的開源工具,使用RestApi
代碼變,文檔變
跨語言,支持多種語言
Swagger-ui 呈現出來的是一份可交互式的API文檔,可以直接在文檔頁面嘗試API的調用
可以將文檔規范導入相關工具(postman、soapui),這些工具將會為我們自動地創建自動化測試
RestApi格式是根據請求的方式決定本次請求的一個操作,譬如:get–>讀,post–>寫(增、刪、改),put–>修改,delete–>刪除
OpenApi與語言無關,只是一種規范,可以使用yaml和json格式進行編寫,這樣更利于我們和機器進行閱讀
Swagger主要包含了以下三個部分:
Swagger editor:基于瀏覽器的編輯器,我們可以使用它編寫我們OpenApi規范(yaml或者json配置)
Swagger UI:他會將我們編寫的OpenApi規范呈現為交互式的API文檔,后文我將使用瀏覽器來查看并且操作我們的RestApi
Swagger Codegen:它可以通過OpenApi規范定義的任何API生成服務器存根和客戶端SDK來簡化構建過程
springfox
使用swagger時如果碰見版本更新迭代時,只需要更改swagger的描述文件即可,但是在頻繁的更新項目版本時很多開發人員認為即使修改描述文件(yml或json文件)也是一定的工作負擔,久而久之就直接修改代碼,而不去修改描述文件了,這樣基于描述文件生成接口文檔也失去了意義。
Marty Pitt編寫了一個基于spring的組件swagger-springmvc,Spring-fox就是根據這個組件發展而來的全新項目;
Spring-fox是根據代碼生成接口文檔,所以正常的進行更新項目版本,修改代碼即可,而不需要跟隨修改描述文件(yml或json文件);
spring-fox利用自身AOP特性,把swagger集成進來,底層還是Swagger,但是使用起來卻方便很多,所以在實際開發中,都是直接使用spring-fox。