手寫Api文檔的幾個痛點:
-
文檔需要更新的時候,需要再次發送一份給前端,也就是文檔更新交流不及時。
-
接口返回結果不明確
-
不能直接在線測試接口,通常需要使用工具,比如postman
-
接口文檔太多,不好管理
Swagger也就是為了解決這個問題,當然也不能說Swagger就一定是完美的,當然也有缺點,最明顯的就是代碼移入性比較強。
其他的不多說,想要了解Swagger的,可以去Swagger官網,可以直接使用Swagger editor編寫接口文檔,當然我們這里講解的是SpringBoot整合Swagger2,直接生成接口文檔的方式。
添加相關的依賴
<!-- swagger 文檔 ?一些注解都是在這個包里面的--> <dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.6.1</version> </dependency> <!-- swagger-ui.html 在線頁面--> <dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.6.1</version> </dependency>
@Api:用在請求的類上,表示對類的說明(不配置默認是按類名駝峰變下劃線顯示)value:該參數沒什么意義,在UI界面上也看到,所以不需要配置tags:說明該類的作用,可以在UI界面上看到的注解description:對api資源的描述basePath:基本路徑position:如果配置多個Api 想改變顯示的順序位置produces:如 “application/json, application/xml”consumes:如 “application/json, application/xml”protocols:協議類型,如: http, https, ws, wss.authorizations:高級特性認證時配置hidden:配置為true ,將在文檔中隱藏
@ApiOperation:用在請求的方法上,說明方法的用途、作用value:說明方法的用途、作用tags:如果設置這個值、value的值會被覆蓋notes:方法的備注說明description:對api資源的描述
@ApiImplicitParams:用在請求的方法上,表示一組參數說明@ApiImplicitParam:用在@ApiImplicitParams注解中,指定一個請求參數的各個方面name:參數名value:參數的漢字說明、解釋required:參數是否必須傳paramType:參數放在哪個地方· header --> 請求參數的獲取:@RequestHeader· query --> 請求參數的獲取:@RequestParam· path(用于restful接口)--> 請求參數的獲取:@PathVariable· div(不常用)· form(不常用) ? ?dataType:參數類型,默認String,其它值dataType="Integer" ? ? ? defaultValue:參數的默認值
@ApiParam() 用于方法,參數,字段說明;表示對參數的添加元數據(說明或是否必填等)name:參數名value:參數說明required:是否必填
@ApiResponses:用在請求的方法上,表示一組響應@ApiResponse:用在@ApiResponses中,一般用于表達一個錯誤的響應信息code:數字,例如400message:信息,例如"請求參數沒填好"response:拋出異常的類
@ApiModel:用于pojo類上,描述一個Model的信息
(一般用在請求參數無法使用@ApiImplicitParam注解進行描述的時候,比如使用@RequestBody這樣的場景)
@ApiModelProperty:用在屬性上,描述一個model的屬性
@ApiIgnore:注解類、參數、方法,注解后將不在Swagger UI中顯示
?