Swagger-注解:
作用范围
|
API
|
使用位置
|
协议集描述
|
@Api
|
用于controller类上
|
对象属性
|
@ApiModelProperty
|
用在出入参数对象的字段上
|
协议描述
|
@ApiOperation
|
用在controller的方法上
|
Response集
|
@ApiResponses
|
用在controller的方法上
|
Response
|
@ApiResponse
|
用在 @ApiResponses里边
|
非对象参数集
|
@ApiImplicitParams
|
用在controller的方法上
|
非对象参数描述
|
@ApiImplicitParam
|
用在@ApiImplicitParams的方法里边
|
校验绑定的参数
|
@Valiated
|
用在controller的方法上
|
描述返回对象的意义
|
@ApiModel
|
用在返回对象类上
|
api
标记,用在类上,说明该类的作用。可以标记一个
Controller
类做为
Swagger
文档资源,使用方式
与
Controller
注解并列使用。 属性配置:
Controller 控制器
tags 一定要写,不然swagger扫描显示的是类名
属性名称
|
备注
|
value
|
url的路径值
|
tags
|
如果设置这个值、value的值会被覆盖
|
description
|
对api资源的描述
|
basePath
|
基本路径可以不配置
|
position
|
如果配置多个Api 想改变显示的顺序位置
|
produces
|
For example, "application/json, application/xml"
|
consumes
|
For example, "application/json, application/xml"
|
protocols
|
Possible values: http, https, ws, wss.
|
authorizations
|
高级特性认证时配置
|
hidden
|
配置为true 将在文档中隐藏
|
@ApiOperation
ApiOperation
标记,用在方法上,说明方法的作用,每一个
url
资源的定义,使用方式:
@ApiOperation("获取用户信息")
与Controller
中的方法并列使用,属性配置:
属性名称 | 备注 |
---|
value | url的路径值 |
tags | 如果设置这个值、value的值会被覆盖 |
description | 对api资源的描述 |
basePath | 基本路径可以不配置 |
position | 如果配置多个Api 想改变显示的顺序位置 |
produces | For example, "application/json, application/xml" |
consumes | For example, "application/json, application/xml" |
protocols | Possible values: http, https, ws, wss. |
authorizations | 高级特性认证时配置 |
hidden | 配置为true将在文档中隐藏 |
response | 返回的对象 |
responseContainer | 这些对象是有效的 "List", "Set" or "Map".,其他无效 |
httpMethod | "GET", "HEAD", "POST", "PUT", "DELETE", "OPTIONS" and "PATCH" |
code | http的状态码 默认 200 |
extensions | 扩展属性 |
@ApiParam
ApiParam
标记,请求属性,使用方式:
public TableDataInfo list(@ApiParam(value = "查询用户列表", required = true)User user)
与Controller中的方法并列使用,属性配置:
属性名称 | 备注 |
---|
name | 属性名称 |
value | 属性值 |
defaultValue | 默认属性值 |
allowableValues | 可以不配置 |
required | 是否属性必填 |
access | 不过多描述 |
allowMultiple | 默认为false |
hidden | 隐藏该属性 |
example | 举例子 |
@ApiResponse
ApiResponse
标记,响应配置,使用方式:
@ApiResponse(code = 400, message = "查询用户失败")
与Controller
中的方法并列使用,属性配置:
属性名称 | 备注 |
---|
code | http的状态码 |
message | 描述 |
response | 默认响应类 Void |
reference | 参考ApiOperation中配置 |
responseHeaders | 参考 ResponseHeader 属性配置说明 |
responseContainer | 参考ApiOperation中配置 |
@ApiResponses
ApiResponses
标记,响应集配置,使用方式:
@ApiResponses({ @ApiResponse(code = 400, message = "无效的用户") })
与Controller
中的方法并列使用,属性配置:
@ResponseHeader
ResponseHeader
标记,响应头设置,使用方法
@ResponseHeader(name="head",description="响应头设计")
与Controller
中的方法并列使用,属性配置:
属性名称 | 备注 |
---|
name | 响应头名称 |
description | 描述 |
response | 默认响应类 void |
responseContainer | 参考ApiOperation中配置 |
@RestController
@RequestMapping("/msg/im")
@Api(tags = "消息-IM")
public class IMController {
@ApiOperation("生成用户签名")
@ApiImplicitParams({
@ApiImplicitParam(name = "userId", value = "用户ID", required = true, dataType = "String")
@GetMapping("/{userId}")
public R<String> test(@PathVariable("userId") @ApiParam(value = "用户ID", required = true) String userId) {
return R.ok(IMTencentUtil.genUserSig(userId));
VO 返回对象
其中@Null、@NotNull。。等与@Valiated 配合使用
限制 | 说明 |
---|
@Null | 限制只能为null |
@NotNull | 限制必须不为null |
@AssertFalse | 限制必须为false |
@AssertTrue | 限制必须为true |
@DecimalMax(value) | 限制必须为一个不大于指定值的数字 |
@DecimalMin(value) | 限制必须为一个不小于指定值的数字 |
@Digits(integer,fraction) | 限制必须为一个小数,且整数部分的位数不能超过integer,小数部分的位数不能超过fraction |
@Future | 限制必须是一个将来的日期 |
@Max(value) | 限制必须为一个不大于指定值的数字 |
@Min(value) | 限制必须为一个不小于指定值的数字 |
@Past | 限制必须是一个过去的日期 |
@Pattern(value) | 限制必须符合指定的正则表达式 |
@Size(max,min) | 限制字符长度必须在min到max之间 |
@Past | 验证注解的元素值(日期类型)比当前时间早 |
@NotEmpty | 验证注解的元素值不为null且不为空(字符串长度不为0、集合大小不为0) |
@NotBlank | 验证注解的元素值不为空(不为null、去除首位空格后长度为0),不同于@NotEmpty,@NotBlank只应用于字符串且在比较时会去除字符串的空格 |
@Email | 验证注解的元素值是Email,也可以通过正则表达式和flag指定自定义的email格式 |
@ApiModel
用在返回对象类上
属性名称 | 备注 |
---|
value | 默认 为模型提供一个替代名称 |
description | 描述 |
referencey | 指定对相应类型定义的引用,覆盖指定的任何其他元数据 |
@ApiModelProperty
用在返回对象的属性上
属性名称 | 备注 |
---|
value | 默认 字段说明 |
name | 重写属性名字 |
dataType | 重写属性类型 |
required | 是否必填 |
example | 举例说明 |
hidden | 配置为true将在文档中隐藏 |
@ApiModel("testVo")
public class MsgPageVO
@ApiModelProperty("消息ID")
private Long msgId;
@Api(tags = "")写,不然swagger扫描显示的是类名
持续更新中。。。。