常用到的注解有:
作用范围
API
使用位置
协议集描述
@Api
用于controller类上
协议描述
@ApiOperation
用在controller的方法上
非对象参数集
@ApiImplicitParams
用在controller的方法上
非对象参数描述
@ApiImplicitParam
用在@ApiImplicitParams的方法里边
对象参数描述
@ApiParam
用在@ApiImplicitParams的方法里边,定义接收的参数形式
描述返回对象的意义
@ApiModel
用在返回对象类上
对象属性
@ApiModelProperty
用在参数对象的字段上
Response集
@ApiResponses
用在controller的方法上
Response
@ApiResponse
用在 @ApiResponses里边
Response
@ResponseHeader
1. @Api标记 Api 用在类上,说明该类的作用。可以标记一个 Controller 类做为 swagger 文档资源,使用方式:
1 @Api(value = "/user", description = "Operations about user")
与Controller注解并列使用。 属性配置:
属性名称
备注
是否弃用
value
url的路径值
tags
如果设置这个值、value的值会被覆盖
description
对api资源的描述
@Deprecated
basePath
基本路径可以不配置
@Deprecated
position
如果配置多个Api 想改变显示的顺序位置
@Deprecated
produces
For example, “application/json, application/xml”
consumes
For example, “application/json, application/xml”
protocols
Possible values: http, https, ws, wss.
authorizations
高级特性认证时配置
在SpringMvc中的配置如下:
1 2 3 4 5 6 7 @RestController @RequestMapping(value = "/app/table") @Api(value = "/app/table", protocols = "http") public class AppTableController {}
2. @ApiOperation标记 ApiOperation:用在方法上,说明方法的作用,每一个url资源的定义,使用方式:
1 2 3 4 5 @ApiOperation( value = "Find purchase order by ID", notes = "", response = A.class, tags = {""})
与Controller中的方法并列使用。 属性配置:
属性名称
备注
是否弃用
value
url的路径值
tags
如果设置这个值、value的值会被覆盖
description
对api资源的描述
无
basePath
基本路径可以不配置
无
position
如果配置多个Api 想改变显示的顺序位置
@Deprecated
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”.,其他无效
responseReference
指定对响应类型的引用。指定的引用可以是本地的,也可以是远程的*将按原样使用,并覆盖任何指定的response()类。
responseHeaders
响应旁边提供的可能标题列表。
httpMethod
“GET”, “HEAD”, “POST”, “PUT”, “DELETE”, “OPTIONS” and “PATCH”
code
http的状态码 默认 200
extensions
扩展属性
notes
注释说明
response
方法的返回值的类型class
在SpringMvc中的配置如下:
1 2 3 4 5 6 7 8 9 10 @ApiOperation(value = "/createCode", notes = "创建文件", response = ResultObj.class) @RequestMapping(value = "/createCode") public ResultObj createCode ( @RequestParam(value = "tab_name", required = true) String tab_name ,@RequestParam(value = "type", required = true) Integer type ,@RequestParam(value = "includeSwagger", required = true) Boolean includeSwagger ,@RequestParam(value = "moduleName", required = true) String moduleName ,@RequestParam(value = "packageName", required = true) String packageName) { return ResultObj.getDefaultResponse(appTableService.listTable(tab_name,null )); }
3. @ApiImplicitParams、@ApiImplicitParam、@ApiParam标记 @ApiImplicitParams 只有value
一个属性,用来装多个@ApiImplicitParam
。
@ApiImplicitParam 用在@ApiImplicitParams
注解中,指定一个请求参数的各个方面
属性名称
备注
paramType
参数放在哪个地方
name
参数名称
value
参数代表的含义
dataType
参数类型
dataTypeClass
参数类型
required
是否必要
defaultValue
参数的默认值
paramType: 1 2 3 4 5 header-->请求参数的获取:@RequestHeader(代码中接收注解) query-->请求参数的获取:@RequestParam(代码中接收注解) path(用于restful接口)-->请求参数的获取:@PathVariable(代码中接收注解) body-->请求参数的获取:@RequestBody(代码中接收注解) form(不常用))
使用方式 1 2 3 4 5 6 7 8 9 @ApiOperation(value = "/createCode", notes = "创建文件", response = ResultObj.class) @ApiImplicitParams({ @ApiImplicitParam(name = "表名", value = "tab_name", paramType = "query", dataType = "String", required = true) , @ApiImplicitParam(name = "生成代码类别参数", value = "type", paramType = "query", dataType = "Integer", required = true) }) @RequestMapping(value = "/createCode") public ResultObj createCode ( @RequestParam(value = "tab_name", required = true) String tabName ,@RequestParam(value = "type", required = true, defaultValue = "-1") Integer type) {return null ;}
@ApiParam 用在接收参数中,指定一个请求参数的信息
属性名称
备注
name
要绑定到的请求参数的名称
value
参数的简单描述
required
是否必要
defaultValue
参数的默认值
具体参考文档v1.5.0
@ApiParam请求属性,使用方式:与Controller中的方法并列使用。 属性配置:
属性名称
备注
name
属性名称
value
属性值
defaultValue
默认属性值
allowableValues
可以不配置
required
是否属性必填
access
不过多描述
allowMultiple
默认为false
hidden
隐藏该属性
example
举例子
在SpringMvc中的配置如下:
1 2 3 public ResponseEntity<Order> getOrderById ( @ApiParam(value = "ID of pet that needs to be fetched", allowableValues = "range[1,5]", required = true) @PathVariable("orderId") String orderId)
4. @ApiModel、@ApiModelProperty @ApiModel 描述一个Model的信息(这种一般用在post创建的时候,使用@RequestBody
这样的场景,请求参数无法使用 @ApiImplicitParam
注解进行描述的时候;
属性名称
备注
value
名称
description
描述
parent
父类 (class)
discriminator
官方描述:支持模型继承和多态性。这是用作鉴别器的字段名。基于这个领域,可以断言需要使用哪种子类型。
subTypes
子类型 {(class)}
reference
官方描述:指定对相应类型定义的引用,覆盖指定的任何其他元数据
@ApiModelProperty 描述一个model的属性。
1 2 3 4 5 6 7 8 9 10 @Table(name = "app_table", schema = "", catalog = "") @ApiModel(value = "物理表信息表", description = "当前数据库表信息") public class AppTable implements Serializable { private static final long serialVersionUID = -1L ; @Id @Column(name = "tab_name", unique = true) @ApiModelProperty(value = "表名主键")
5. @ApiResponses、@ApiResponse @ApiResponses:响应集配置,使用方式: 1 @ApiResponses({@ApiResponse(code = 400, message = "Invalid Order")})
与Controller中的方法并列使用。 属性配置:
属性名称
备注
value
多个ApiResponse配置
在SpringMvc中的配置如下:
1 2 3 4 5 6 7 8 @RequestMapping(value = "/order", method = POST) @ApiOperation(value = "Place an order for a pet", response = Order.class) @ApiResponses({@ApiResponse(code = 400, message = "Invalid Order")}) public ResponseEntity<String> placeOrder ( @ApiParam(value = "order placed for purchasing the pet", required = true) Order order) { storeData.add(order); return ok("" ); }
@ApiResponse:响应配置,使用方式: 1 @ApiResponse(code = 400, message = "Invalid user supplied")
与Controller中的方法并列使用。 属性配置:
属性名称
备注
code
http的状态码
message
描述
response
默认响应类 Void
reference
参考ApiOperation中配置
responseHeaders
参考 ResponseHeader 属性配置说明
responseContainer
参考ApiOperation中配置
在SpringMvc中的配置如下:
1 2 3 4 5 6 7 8 @RequestMapping(value = "/order", method = POST) @ApiOperation(value = "Place an order for a pet", response = Order.class) @ApiResponses({@ApiResponse(code = 400, message = "Invalid Order")}) public ResponseEntity<String> placeOrder ( @ApiParam(value = "order placed for purchasing the pet", required = true) Order order) { storeData.add(order); return ok("" ); }
响应头设置,使用方法
1 @ResponseHeader(name = "head1", description = "response head conf")
与Controller中的方法并列使用。 属性配置:
属性名称
备注
name
响应头名称
description
头描述
response
默认响应类 Void
responseContainer
参考ApiOperation中配置
本文地址:Swagger2.X注解
本文地址: https://github.com/maxzhao-it/blog/post/15110/