Swagger2的實現原理及應用


為什么使用Swagger2

1.由於接口眾多,並且細節復雜(需要考慮不同的HTTP請求類型、HTTP頭部信息、HTTP請求內容等),高質量地創建這份文檔本身就是件非常吃力的事,下游的抱怨聲不絕於耳。

2.隨着時間推移,不斷修改接口實現的時候都必須同步修改接口文檔,而文檔與代碼又處於兩個不同的媒介,除非有嚴格的管理機制,不然很容易導致不一致現象。

Swagger2相關依賴依賴

<dependency>
	<groupId>io.springfox</groupId>
	<artifactId>springfox-swagger2</artifactId> <version>2.9.2</version>
</dependency>
<dependency>
	<groupId>io.springfox</groupId>
	<artifactId>springfox-swagger-ui</artifactId>    <version>2.9.2</version>
</dependency>


swagger基本配置


@Configuration注解代表上圖SwaggerConfig類為配置類,啟動boot后自動加載到容器中。

@EnableSwagger2則是用來啟動Swagger支持,表示這是一個Spring Swagger的配置文件。

定義了一個Bean方法CustomDocket,Spring中名字並不重要,重要的是它返回一個Docket類,DocumentationType.SWAGGER_2作為Docket構造方法的參數,指定了所用的swagger版本2.0,而之后的apiInfo則是調用接下來的apiInfo函數,來創建Docket的信息。apiInfo函數采用ApiInfoBuilder類的build方法來創建ApiInfo類,build方法中所加入的參數將顯示在swagger生成的Api接口文檔中。

配置swagger-ui依賴中的Swagger2-Api文檔頁面的訪問權限,重寫WebMvcConfigurer類中的addResourceHandlers方法,允許指定資源訪問,配置完成后即可訪問生成的Api文檔

swagger界面


登錄之后界面如下:

swagger注解的使用


@Api:一般用於Controller中,用於接口分組。(如:@Api(value = "用戶接口", description = "用戶接口", tags = {"1.1.0"})


@ApiOperation:接口說明,用於controller控制層方法上。(如: @ApiOperation(value = "用戶查詢", notes = "根據ID查詢用戶信息"))

@ApiParam:接口說明,用於controller控制層方法參數上。(如: @ApiParam(name=“userId”,value = “用戶ID", notes = "根據ID查詢用戶信息"))


@ApiModelProperty:實體參數說明,這里我通過Mybatis-generate逆向工程生成了swagger注解

效果演示:


測試結果成功了,返回了預期想要的參數,以上為spring boot結合swagger插件生成的API接口文檔。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM