詳細SpringBoot框架教程——SpringBoot集成Swagger

SpringBoot集成swagger
說到swagger(絲襪哥),首先了解一下OpenAPI規(guī)范(OpenAPI Specification 簡稱OAS)是Linux基金會的一個項目,試圖通過定義一種用來描述API格式或API定義的語言,來規(guī)范RESTful服務開發(fā)過程,目前版本是V3.0,并且已經發(fā)布并開源在github上。(https://github.com/OAI/OpenAPI-Specification);
swagger是目前最受歡迎的OpenAPI規(guī)范(OAS)開發(fā)工具框架,支持從設計和文檔到測試和部署的整個API生命周期的開發(fā);
wagger官網:https://swagger.io/?是一個開源項目,也就是提供jar包);
swagger2 版本:1.x,2.x,現在都用2.x;
Spring Boot也集成了swagger,可以很方便地在springboot中使用swagger生成api接口文檔;
swagger的作用:
隨項目自動生成強大RESTful API文檔,減少開發(fā)人員工作量;(不需要自己寫api接口文檔了),使用swagger,只需要在代碼中添加一些注解即可生成API接口文檔,便于同步更新API文檔的說明,當然也有人詬病說這種方式與代碼耦合在一起,智者見智仁者見仁;
另外生成的api文檔頁面帶有測試功能,可以用來調試每個RESTful API接口;
怎么集成?
springboot集成第三方組件一般情況下是三個步驟:
1、加依賴(可能是starter);
2、配置application.properties文件;
3、寫代碼;
所以:
1、添加相關依賴

1、配置文件(暫時不需要在application.properties配置)
2、編寫相關代碼,需要用到一些注解;

標紅色的這些都是swagger的注解;
然后在spring ioc容器中配置創(chuàng)建一個Docket對象;

具體參考課堂上的樣例代碼;
完成后訪問:http://localhost:8080/swagger-ui.html?得到API文檔;(如果有項目上下文地址要帶上項目上下文)
說明:2.10.5?這個版本目前使用的時候有點問題,后續(xù)再看一下;
接口api的數據查看:http://localhost:8080/24-springboot/v2/api-docs
swagger常用注解:
@Api:用在類上,說明該類的作用;
@ApiOperation:用在方法上,說明方法的作用;
@ApiImplicitParams:用在方法上包含一組參數說明;
@ApiImplicitParam:用在@ApiImplicitParams注解中,指定一個請求參數的各個方面:
paramType:參數放在哪個地方;
header-->請求參數的獲?。篅RequestHeader;
query-->請求參數的獲?。篅RequestParam;
path-->請求參數的獲取:@PathVariable (用于restful接口);
body(不常用);
form(不常用);
name:?參數名;
dataType:參數類型;
required:參數是否必須傳;
value:參數的意思;
defaultValue:參數的默認值;
@ApiResponses:用于表示一組響應;
@ApiResponse:用在@ApiResponses中,一般用于表達一個錯誤的響應信息;
code:數字,例如400;
message:信息,例如?"請求參數不合法";
response:拋出異常的類;
@ApiIgnore:使用該注解忽略這個API,在頁面上不顯示;
@ApiModel:描述一個Model的信息;
@ApiModelProperty:描述一個model的屬性;
注解可參考官方:https://github.com/swagger-api/swagger-core/wiki/Annotations?
WebJars是將Web前端Javascript和CSS等資源打包成Java的Jar包,這樣在Java Web開發(fā)中我們可以借助Maven這些依賴庫的管理,保證這些Web資源版本唯一性;
swagger安全性問題: 正式上線的時候,建議關閉swagger;
在配置文件配置一個開關:開啟或關閉:

springfox與swagger的關系
swagger是一個流行的API開發(fā)框架,這個框架實現了“開放API聲明”(OpenAPI Specification,OAS)規(guī)范;
由于Spring的流行,Marty Pitt編寫了一個基于Spring的組件swagger-springmvc,用于將swagger集成到springmvc中來,而springfox則是從swagger-springmvc這個組件發(fā)展而來,同時springfox也是一個新的
項目,目前新的項目中都是使用springfox-swagger2,其實在一些比較老的項目中可能還會用swagger-springmvc;
springfox-swagger2依然是實現OSA規(guī)范,生成一個描述API的json文件,,另外一個組件springfox-swagger-ui就是將這個json文件解析出來,用一種更友好的頁面效果方式呈現出來;
Lombok介紹
lombok就是一個jar包,加到項目中;
使用lombok的步驟如下:
1、加入lombok的依賴;
<!--lombok-->
<dependency>
????<groupId>org.projectlombok</groupId>
????<artifactId>lombok</artifactId>
????<version>1.18.12</version>
</dependency>
2、Idea工具需要改一個配置;

3、寫代碼的時候,在代碼上加一些lombok的注解;常用的注解:
@NoArgsConstructor
@Getter
@Setter
@Data
如果想更深入的學習springboot,奉上springboot全套視頻教程,視頻學習效果更佳,走過路過別忘素質三連哦~~

