您好,登錄后才能下訂單哦!
本篇內容介紹了“Swagger有什么用”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
Swagger 是一個用于生成、描述和調用 RESTful 接口的 Web 服務。通俗的來講,Swagger 就是將項目中所有(想要暴露的)接口展現在頁面上,并且可以進行接口調用和測試的服務。
PS:Swagger 遵循了 OpenAPI 規范,OpenAPI 是 Linux 基金會的一個項目,試圖通過定義一種用來描述 API 格式或 API 定義的語言,來規范 RESTful 服務開發過程。
Swagger 官網地址:https://swagger.io/
從上述 Swagger 定義我們不難看出 Swagger 有以下 3 個重要的作用:
將項目中所有的接口展現在頁面上,這樣后端程序員就不需要專門為前端使用者編寫專門的接口文檔;
當接口更新之后,只需要修改代碼中的 Swagger 描述就可以實時生成新的接口文檔了,從而規避了接口文檔老舊不能使用的問題;
通過 Swagger 頁面,我們可以直接進行接口調用,降低了項目開發階段的調試成本。
Swagger 舊版本也就是目前市面上主流的 V2 版本是 Swagger 2.9.2,在講新版本之前,我們先來回顧一下 Swagger 2.9.2 是如何使用的。
Swagger 2.9.2 的使用分為以下 4 步:
鴻蒙官方戰略合作共建——HarmonyOS技術社區
添加依賴
開啟 Swagger 功能
配置 Swagger 文檔摘要信息
調用接口訪問
下面我們分別來看。
首先,我們要去 mvnrepository 查詢 Swagger 的依賴,搜索“springfox”關鍵字,得到結果的前兩條依賴信息,就是我們想要的結果,如下圖所示:
將這兩個依賴添加帶項目中:
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </dependency> <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.9.2</version> </dependency>
問:我們要使用的是 Swagger,為什么要搜索“springfox”?
答:Swagger 可以看作是一個遵循了 OpenAPI 規范的一項技術,而 springfox 則是這項技術的具體實現。就好比 Spring 中的 AOP 和 DI 一樣,前者是思想,而后者是實現。
在 Spring Boot 的啟動類或配置類中添加 @EnableSwagger2 注釋,開啟 Swagger,部分核心代碼如下:
@EnableSwagger2 @SpringBootApplication public class Application {...
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2; @Configuration public class SwaggerConfig { @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) // 1.SWAGGER_2 .select() .apis(RequestHandlerSelectors.basePackage("com.example.swaggerv2.controller")) // 2.設置掃描路徑 .build(); } }
項目正常啟動之后使用“http://localhost:8080/swagger-ui.html”訪問Swagger頁面,如下圖所示:
Swagger 最新版的配置步驟和舊版本是一樣,只是每個具體的配置項又略有不同,具體步驟如下。
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-boot-starter --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-boot-starter</artifactId> <version>3.0.0</version> </dependency>
從上述配置可以看出,Swagger 新版本的依賴項只有一個,而舊版本的依賴項有兩個,相比來說也簡潔了很多。
在 Spring Boot 的啟動類或配置類中添加 @EnableOpenApi 注釋,開啟 Swagger,部分核心代碼如下:
@EnableOpenApi @SpringBootApplication public class Application {...
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.oas.annotations.EnableOpenApi; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; @Configuration public class SwaggerConfig { @Bean public Docket createRestApi() { return new Docket(DocumentationType.OAS_30) // v2 不同 .select() .apis(RequestHandlerSelectors.basePackage("com.example.swaggerv3.controller")) // 設置掃描路徑 .build(); } }
從上述代碼可以看出 Docket 的配置中只有文檔的類型設置新老版本是不同的,新版本的配置是 OAS_30 而舊版本的配置是 SWAGGER_2。
PS:OAS 是 OpenAPI Specification 的簡稱,翻譯成中文就是 OpenAPI 說明書。
新版本的 Swagger 訪問地址和老版本的地址是不同的,新版版的訪問地址是“localhost:8080/swagger-ui/”,如下圖所示:
新版本和老版本的區別主要體現在以下 4 個方面:
鴻蒙官方戰略合作共建——HarmonyOS技術社區
依賴項的添加不同:新版本只需要添加一項,而老版本需要添加兩項;
啟動 Swagger 的注解不同:新版本使用的是 @EnableOpenApi,而老版本是 @EnableSwagger2;
Docket(文檔摘要信息)的文件類型配置不同:新版本配置的是 OAS_3,而老版本是 SWAGGER_2;
Swagger UI 訪問地址不同:新版本訪問地址是“http://localhost:8080/swagger-ui/”,而老版本訪問地址是“http://localhost:8080/swagger-ui.html”。
“Swagger有什么用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。