image.png

一、項目描述

為了練習Spring Boot中使用Swagger3.0.0版本生成可視化的swagger接口文檔 本項目涉及的版本

  • Spring版本:5.3.22
  • SpringBoot版本:2.7.3
  • Swagger版本:3.0.0

二、簡介

一般我們在對接前後端的時候,都需要提供相應的接口文檔。對於後端來説,編寫接口文檔即費時費力,還會經常因為沒有及時更新,導致前端對接時出現實際接口與文檔不一致。而且手寫接口文檔還容易出錯,而swagger很好的解決了這個痛點。

Swagger 是一個規範和完整的框架,用於生成、描述、調用和可視化 RESTful 風格的 Web 服務。可用於:1.接口的文檔在線自動生成、2.功能測試。

image.png

三、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)

image.png

重要信息

image.png image.png