一、項目描述
為了練習Spring Boot中使用Swagger3.0.0版本生成可視化的swagger接口文檔
本項目涉及的版本
- Spring版本:5.3.22
- SpringBoot版本:2.7.3
- Swagger版本:3.0.0
二、簡介
一般我們在對接前後端的時候,都需要提供相應的接口文檔。對於後端來説,編寫接口文檔即費時費力,還會經常因為沒有及時更新,導致前端對接時出現實際接口與文檔不一致。而且手寫接口文檔還容易出錯,而swagger很好的解決了這個痛點。
Swagger 是一個規範和完整的框架,用於生成、描述、調用和可視化 RESTful 風格的 Web 服務。可用於:1.接口的文檔在線自動生成、2.功能測試。
三、Swagger2.X和Swagger3.0.0 的對比
1)SpringFox 2.x 發佈
此版本的亮點:
- 號稱時最流行的 API 框架
- 接口文檔在線生成,避免同步的麻煩
- 可以支持在線對接口執行測試
- 支持多語言
SpringBoot項目整合swagger2需要用到兩個依賴:springfox-swagger2和springfox-swagger-ui,用於自動生成swagger文檔。
springfox-swagger2:這個組件的功能用於幫助我們自動生成描述API的json文件 springfox-swagger-ui:就是將描述API的json文件解析出來,用一種更友好的方式呈現出來。
2)SpringFox 3.0.0 發佈
此版本的亮點:
- Spring5,Webflux支持(僅支持請求映射,尚不支持功能端點)。
- Spring Integration支持。
- SpringBoot支持springfox Boot starter依賴性(零配置、自動配置支持)。
- 支持OpenApi 3.0.3。
- 零依賴。幾乎只需要spring-plugin,swagger-core ,現有的swagger2註釋將繼續工作並豐富openapi3.0規範。
兼容性説明:
- 需要Java 8
- 需要Spring5.x(未在早期版本中測試)
- 需要SpringBoot 2.2+(未在早期版本中測試)
3)swagger3.0 與2.xx配置差異:
- 應用主類添加註解@EnableOpenApi (swagger2是@EnableSwagger2)
- swagger配置類SwaggerProperties.class,與swagger2.xx 版本有差異,具體看下文
- 自定義一個配置類 SwaggerConfiguration.class,看下文
- 訪問地址:http://localhost:8080/swagger-ui/index.html (swagger2.xx版本訪問的地址為http://localhost:8080/swagger-ui.html)
重要信息