1. 程式人生 > >Spring Boot 中使用 Swagger

Spring Boot 中使用 Swagger

個人學習SpringBoot系列 Swagger篇

Github Link: https://github.com/panjianlong13/SpringBoot-SpringCloud/tree/master/spring-boot-swagger


Swagger介紹

Swagger 是什麼

官方介紹Swagger是一個規範且完整的框架,提供描述、生產、消費和視覺化RESTful Web Service。
專業角度:Swagger是由龐大工具集合支撐的形式化規範。這個集合涵蓋了從終端使用者介面、底層程式碼庫到商業API管理的方方面面。

為什麼要使用Swagger

Swagger 可以生成一個具有互動性的API控制檯,開發者可以用來快速學習和嘗試API。API文件實現了直接執行的能力


Swagger 可以生成客戶端SDK程式碼用於各種不同的平臺上的實現。
Swagger 檔案可以在許多不同的平臺上從程式碼註釋中自動生成。
Swagger 有一個強大的社群,裡面有許多強悍的貢獻者。

Swagger原理簡單介紹

swagger將API以文件Documentation定義得很清晰,主要由groupName(分組名)、basePath(contextPath)、apiListings(API列表集)、resourceListing(資源列表集)等屬性組成。

其中API列表被封裝成ApiListing。ApiListing中又持有ApiDesciption集合引用,每個ApiDesciption都持有一個API集合的引用,Operation也就是具體的介面操作,內部包含了該介面對應的http方法、produces、consumes、協議、引數集、響應訊息集等諸多元素。

springfox通過spring-plugin的方式將Plugin註冊到Spring上下文中,然後使用這些plugin進行API的掃描工作,這裡的掃描工作其實也就是構造Documentation的工作,把掃描出的結果封裝成Documentation並放入到DocumentationCache記憶體快取中,之後swagger-ui介面展示的API資訊通過Swagger2Controller暴露,Swagger2Controller內部直接從DocumentationCache中尋找Documentation。


Swagger實戰

新建SpringBoot專案

在pom.xml中新增依賴

自定義對swagger的配置

建立測試用Controller

啟動應用

訪問http://localhost:8080/swagger-ui.html#!/