成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

最新版Swagger 3升級指南和新功能體驗!

開發 前端
本期就大家帶來一篇最新版 Swagger 的內容,本文會帶大家看最新版 Swagger 有哪些改變?又是如何將老版本 Swagger 升級到新版的?

[[387507]]

來源 | Java中文社群(ID:javacn666)轉載請聯系授權(微信ID:GG_Stone)

Swagger 3.0 發布已經有一段時間了,它于 2020.7 月 發布,但目前市面上使用的主流版本還是 Swagger 2.X 版本和少量的 1.X 版本,然而作為一名合格的程序員怎么能不折騰新技術呢?所以本期就大家帶來一篇最新版 Swagger 的內容,本文會帶大家看最新版 Swagger 有哪些改變?又是如何將老版本 Swagger 升級到新版的?

Swagger 是什么?

Swagger 是一個用于生成、描述和調用 RESTful 接口的 Web 服務。通俗的來講,Swagger 就是將項目中所有(想要暴露的)接口展現在頁面上,并且可以進行接口調用和測試的服務。

  • PS:Swagger 遵循了 OpenAPI 規范,OpenAPI 是 Linux 基金會的一個項目,試圖通過定義一種用來描述 API 格式或 API 定義的語言,來規范 RESTful 服務開發過程。

Swagger 官網地址:https://swagger.io/

Swagger 有什么用?

從上述 Swagger 定義我們不難看出 Swagger 有以下 3 個重要的作用:

將項目中所有的接口展現在頁面上,這樣后端程序員就不需要專門為前端使用者編寫專門的接口文檔;

當接口更新之后,只需要修改代碼中的 Swagger 描述就可以實時生成新的接口文檔了,從而規避了接口文檔老舊不能使用的問題;

通過 Swagger 頁面,我們可以直接進行接口調用,降低了項目開發階段的調試成本。

 

Swagger 舊版本使用

Swagger 舊版本也就是目前市面上主流的 V2 版本是 Swagger 2.9.2,在講新版本之前,我們先來回顧一下 Swagger 2.9.2 是如何使用的。

Swagger 2.9.2 的使用分為以下 4 步:

  1. 添加依賴
  2. 開啟 Swagger 功能
  3. 配置 Swagger 文檔摘要信息
  4. 調用接口訪問

下面我們分別來看。

1.添加依賴

首先,我們要去 mvnrepository 查詢 Swagger 的依賴,搜索“springfox”關鍵字,得到結果的前兩條依賴信息,就是我們想要的結果,如下圖所示:


將這兩個依賴添加帶項目中:

  1. <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 --> 
  2. <dependency> 
  3.     <groupId>io.springfox</groupId> 
  4.     <artifactId>springfox-swagger2</artifactId> 
  5.     <version>2.9.2</version> 
  6. </dependency> 
  7.  
  8. <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui --> 
  9. <dependency> 
  10.     <groupId>io.springfox</groupId> 
  11.     <artifactId>springfox-swagger-ui</artifactId> 
  12.     <version>2.9.2</version> 
  13. </dependency> 

為什么是“springfox”?

問:我們要使用的是 Swagger,為什么要搜索“springfox”?

答:Swagger 可以看作是一個遵循了 OpenAPI 規范的一項技術,而 springfox 則是這項技術的具體實現。就好比 Spring 中的 AOP 和 DI 一樣,前者是思想,而后者是實現。

2.開啟Swagger

在 Spring Boot 的啟動類或配置類中添加 @EnableSwagger2 注釋,開啟 Swagger,部分核心代碼如下:

  1. @EnableSwagger2 
  2. @SpringBootApplication 
  3. public class Application {... 

3.配置摘要信息

  1. import org.springframework.context.annotation.Bean; 
  2. import org.springframework.context.annotation.Configuration; 
  3. import springfox.documentation.builders.RequestHandlerSelectors; 
  4. import springfox.documentation.spi.DocumentationType; 
  5. import springfox.documentation.spring.web.plugins.Docket; 
  6. import springfox.documentation.swagger2.annotations.EnableSwagger2; 
  7.  
  8. @Configuration 
  9. public class SwaggerConfig { 
  10.     @Bean 
  11.     public Docket createRestApi() { 
  12.         return new Docket(DocumentationType.SWAGGER_2) // 1.SWAGGER_2 
  13.                 .select() 
  14.                 .apis(RequestHandlerSelectors.basePackage("com.example.swaggerv2.controller")) // 2.設置掃描路徑 
  15.                 .build(); 
  16.     } 

4.訪問Swagger

項目正常啟動之后使用“http://localhost:8080/swagger-ui.html”訪問Swagger頁面,如下圖所示:

 

Swagger 最新版使用

Swagger 最新版的配置步驟和舊版本是一樣,只是每個具體的配置項又略有不同,具體步驟如下。

1.添加依賴

  1. <!-- https://mvnrepository.com/artifact/io.springfox/springfox-boot-starter --> 
  2. <dependency> 
  3.   <groupId>io.springfox</groupId> 
  4.   <artifactId>springfox-boot-starter</artifactId> 
  5.   <version>3.0.0</version> 
  6. </dependency> 

從上述配置可以看出,Swagger 新版本的依賴項只有一個,而舊版本的依賴項有兩個,相比來說也簡潔了很多。

2.開啟Swagger

在 Spring Boot 的啟動類或配置類中添加 @EnableOpenApi 注釋,開啟 Swagger,部分核心代碼如下:

  1. @EnableOpenApi 
  2. @SpringBootApplication 
  3. public class Application {... 

3.配置摘要信息

  1. import org.springframework.context.annotation.Bean; 
  2. import org.springframework.context.annotation.Configuration; 
  3. import springfox.documentation.builders.RequestHandlerSelectors; 
  4. import springfox.documentation.oas.annotations.EnableOpenApi; 
  5. import springfox.documentation.spi.DocumentationType; 
  6. import springfox.documentation.spring.web.plugins.Docket; 
  7.  
  8. @Configuration 
  9. public class SwaggerConfig { 
  10.     @Bean 
  11.     public Docket createRestApi() { 
  12.         return new Docket(DocumentationType.OAS_30) // v2 不同 
  13.                 .select() 
  14.                 .apis(RequestHandlerSelectors.basePackage("com.example.swaggerv3.controller")) // 設置掃描路徑 
  15.                 .build(); 
  16.     } 

從上述代碼可以看出 Docket 的配置中只有文檔的類型設置新老版本是不同的,新版本的配置是 OAS_30 而舊版本的配置是 SWAGGER_2。

  • PS:OAS 是 OpenAPI Specification 的簡稱,翻譯成中文就是 OpenAPI 說明書。

4.訪問Swagger

新版本的 Swagger 訪問地址和老版本的地址是不同的,新版版的訪問地址是“localhost:8080/swagger-ui/”,如下圖所示:

新版本 VS 老版本

新版本和老版本的區別主要體現在以下 4 個方面:

  1. 依賴項的添加不同:新版本只需要添加一項,而老版本需要添加兩項;
  2. 啟動 Swagger 的注解不同:新版本使用的是 @EnableOpenApi,而老版本是 @EnableSwagger2;
  3. Docket(文檔摘要信息)的文件類型配置不同:新版本配置的是 OAS_3,而老版本是 SWAGGER_2;
  4. Swagger UI 訪問地址不同:新版本訪問地址是“http://localhost:8080/swagger-ui/”,而老版本訪問地址是“http://localhost:8080/swagger-ui.html”。

 總結

Swagger 新版本讓人印象深刻的優點有兩個:第一,配置變得簡單了,比如依賴項配置減少了 50%,第二,新版 Swagger 頁面設計風格有了不小的改變,新版的頁面讓人感覺更加現代化也更加具有科技感了,總體來說美觀了不少。

值得一提的是 Swagger 的整個升級過程很平滑,從老版本升級到新版本,只需要簡單的配置即可,那些用于描述接口的注解還是延續了老版本的用法,這樣就可以在不修改大部分主要代碼的情況下,可以成功到最新版本啦。

 

責任編輯:姜華 來源: Java中文社群
相關推薦

2020-05-21 09:17:51

Vue 3Vue代碼

2020-04-28 18:47:06

微信微信群移動應用

2020-05-25 18:18:02

微信微信公眾平臺移動開發

2025-03-10 00:00:00

2009-09-17 08:39:52

Windows 7系統升級

2010-04-07 09:21:42

Windows 7升級顧問

2011-03-23 10:23:56

IE9嘗鮮體驗瀏覽器

2009-05-26 09:25:55

2012-04-11 10:28:19

LinuxUbuntu 12.0

2025-02-24 00:00:09

2014-06-06 16:57:30

網絡人

2021-09-02 09:57:37

Windows 11Windows微軟

2021-08-23 10:35:13

Linuxhtop命令

2010-02-23 10:39:43

Visual Stud

2013-08-06 09:35:21

Office 365微軟

2010-06-08 10:15:45

opensuse 11

2025-04-14 02:25:00

2021-08-15 22:55:52

Windows 11Windows微軟

2010-05-24 19:09:01

SubVersion最
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品一级 | 精品一二区 | 福利网址 | 欧美jizzhd精品欧美巨大免费 | 91电影在线播放 | 一区二区三区视频在线 | 国产精品天堂 | 成人综合在线视频 | 午夜小视频免费观看 | 日本中文字幕视频 | 国产一区二区三区久久久久久久久 | 亚洲一区二区三区在线播放 | 日日夜夜天天干 | 在线a视频 | 久久国产亚洲 | 国产超碰人人爽人人做人人爱 | 亚洲精品v日韩精品 | 污视频免费在线观看 | 国产一区二区三区久久 | 久久久久久综合 | 亚洲成av人影片在线观看 | 久久久久久成人 | 欧美在线一区二区三区 | 国产精品区二区三区日本 | 久久久久久久久91 | 国产一级视屏 | 久草网视频 | 国产日韩欧美 | 国产精品久久一区二区三区 | 日韩字幕| 亚洲免费在线观看 | 天天操天天射综合 | 中文字幕亚洲免费 | 亚洲一区二区三区视频在线 | 91精品国产麻豆 | 在线国产一区二区三区 | 久久精品国产免费一区二区三区 | 欧美精品乱码99久久影院 | 欧美理伦片在线播放 | 久久久久久久一区二区 | 视频一区二区在线观看 |