@Api
@Api:用在请求的类上,表示对类的说明
tags="说明该类的作用,可以在UI界面上看到的注解"
value="该参数没什么意义,在UI界面上也看到,所以不需要配置"
@ApiOperation
@ApiOperation:用在请求的方法上,说明方法的用途、作用
value="说明方法的用途、作用"
notes="方法的备注说明"
@ApiImplicitParams
@ApiImplicitParams:用在请求的方法上,,表示一组参数说明,包含多个 @ApiImplicitParam,
@ApiImplicitParam:用在@ApiImplicitParams注解中,指定一个请求参数的各个方面
参数:
1. name :参数名
2. value : 参数的具体含义、作用
3. required : 参数是否必填
4. dataType :参数的数据类型,默认String,其它值dataType="Integer"(实际是要:dataType = "int",swagger页面上展示的是integer)
5. paramType :查询参数类型(参数放在哪个地方),这里有几种形式:
类型 作用
path 以地址的形式提交数据(用于restful接口)--> 请求参数的获取:@PathVariable
query 直接跟参数完成自动映射赋值--> 请求参数的获取:@RequestParam
body 以流的形式提交 仅支持POST,不常用--> 请求参数的获取:@RequestBody(代码中接收注解)
header 参数在request headers里边提交--> 请求参数的获取:@RequestHeader
form 以form表单的形式提交 仅支持POST,不常用
6. defaultValue:参数的默认
7. example : 示例数据
在这里我被坑过一次:当我发POST请求的时候,当时接受的整个参数,不论我用body还是query,后台都会报Body Missing错误。这个参数和SpringMvc中的@RequestBody冲突,索性我就去掉了paramType,对接口测试并没有影响。
示例:
@ApiOperation("查询测试")
@GetMapping("select")
//@ApiImplicitParam(name="name",value="用户名",dataType="String", paramType = "query")
@ApiImplicitParams({
@ApiImplicitParam(name="name",value="用户名",dataType="string", paramType = "query",example="xingguo"),
@ApiImplicitParam(name="id",value="用户id",dataType="long", paramType = "query")})
public void select(){
}
@ApiResponses
@ApiResponses:用在请求的方法上,表示一组响应
@ApiResponse:用在@ApiResponses中,一般用于表达一个错误的响应信息
code:数字,例如400
message:信息,例如"请求参数没填好"
response:抛出异常的类
@ApiModel
@ApiModel:用于响应类上,表示一个返回响应数据的信息
(这种一般用在post创建的时候,使用@RequestBody这样的场景,
请求参数无法使用@ApiImplicitParam注解进行描述的时候)
@ApiModelProperty
@ApiModelProperty:用在属性上,描述响应类的属性