今天我們講一講Swagger這個(gè)框架。
一、準(zhǔn)備工作
首先說說POM文件
里面需要加什么依賴
<!-- Swagger -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.6.1</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.6.1</version>
</dependency>
以上為Swagger
需要的依賴
接下來需要一個(gè)Swagger配置類
Swagger配置類
以下為配置類代碼
@Configuration
@ComponentScan(basePackages = { "com.test.controller" })//配置controller路徑
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.test"))//掃描com路徑下的api文檔
.paths(PathSelectors.any())//路徑判斷,這里是任何路徑
.build();
}
private ApiInfo apiInfo() {
return new ApiInfo("測試接口-JAVA版",//大標(biāo)題
"測試",//小標(biāo)題
"1.0",//版本
"001",
"老虎",//作者
"官方網(wǎng)址",//鏈接顯示文字
"www.baidu.com"http://網(wǎng)站鏈接
);
}
}
apiInfo
apiInfo
中有一些,作者也沒弄明白的,其實(shí)是懶得看了。如果大家知道,請?jiān)诓┛拖路搅粞阅е郑x謝。
到這兒就算是準(zhǔn)備工作完成了粉洼,接下來介紹一下Swagger
的注解节预。注解,我只會(huì)講比較常用的漆改。就是開發(fā)過程中用到的心铃,那些太偏門的,就留著有空慢慢研究吧挫剑。
二去扣、Swagger注解
先來看個(gè)截圖,根據(jù)截圖我們講解一下注解
注解
2.1@ApiModel
該注解用于描述Model類
主要使用:
value: 類的說明
reference: 這個(gè)本人也沒搞明白做啥的,有明白的請?jiān)诓┛土粞园? ~~~~(>_<)~~~~
2.2@ApiModelProperty
該注解主要用于字段屬性樊破。如果跟用于Controller
的注解結(jié)合使用愉棱,就會(huì)有意向不到的效果
主要使用:
value: 字段說明
dataType: 字段類型描述(String、Integer之類的)
required: 是否為空;不用的時(shí)候,不寫默認(rèn)為false
example:字段示例值,用于Swagger文檔頁面展示使用
以上兩個(gè)注解主要是用于Model類的哲戚。在Swagger頁面上顯示如圖
image.png
image.png
有沒有發(fā)現(xiàn)一個(gè)問題奔滑,第一張圖跟第二張圖少了許多。
沒錯(cuò)顺少,就是接下來我們要講的用于Controller
的注解朋其。
Controller代碼
@RestController
@RequestMapping("test")
@Api(value = "測試", description = "測試Controller", tags = "test")
public class TestController {
@ApiOperation(value="獲取用戶列表", notes="獲取用戶列表", httpMethod = "POST",
response = TestUser.class, produces = "application/json")
@RequestMapping("getUserList")
public List<TestUser> getUserList(@RequestBody @ApiParam TestUser tu) {
List<TestUser> r = new ArrayList<TestUser>();
return r;
}
}
2.3@Api
value:用于描述Controller,與tags相沖
tags:用于歸納Controller,與value相沖
value跟tags這倆,如果有了tags的話,value則無效,否則value有效。
description: Controller的描述
如圖
image.png
2.4@ApiOperation
主要用于修飾Controller
類的方法
value: 方法描述
notes: 方法進(jìn)一步詳細(xì)描述
response: 方法返回值必須是 xxx.class
produces: 方法返回類型 基本是application/json
如圖
image.png
雙擊紅框處脆炎,紅框的內(nèi)容會(huì)到橢圓形的位置去梅猿。點(diǎn)擊左下角的try it out即可發(fā)起請求進(jìn)行測試。