SwaggerAPI注解详解,以及注解常⽤参数配置
注解
@Api:
作⽤在类上,⽤来标注该类具体实现内容。表⽰标识这个类是swagger的资源 。
参数:
1. tags:可以使⽤tags()允许您为操作设置多个标签的属性,⽽不是使⽤该属性。
2. description:可描述描述该类作⽤。
@ApiImplicitParam:
作⽤在⽅法上,表⽰单独的请求参数
参数:
1. name :参数名。
2. value : 参数的具体意义,作⽤。param name
3. required : 参数是否必填。
4. dataType :参数的数据类型。
5. paramType :查询参数类型,这⾥有⼏种形式:
类型作⽤
path以地址的形式提交数据
query直接跟参数完成⾃动映射赋值
body以流的形式提交 仅⽀持POST
header参数在request headers ⾥边提交
form以form表单的形式提交 仅⽀持POST
在这⾥我被坑过⼀次:当我发POST请求的时候,当时接受的整个参数,不论我⽤body还是query,后
台都会报Body Missing错误。这个参数和SpringMvc中的@RequestBody冲突,索性我就去掉了paramType,对接⼝测试并没有影响。
@ApiImplicitParams:
⽤于⽅法,包含多个 @ApiImplicitParam:
例:
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "book's name", required = true, dataType = "Long", paramType = "query"),
@ApiImplicitParam(name = "date", value = "book's date", required = false, dataType = "string", paramType = "query")})
@ApiModel:
⽤于类,表⽰对类进⾏说明,⽤于参数⽤实体类接收;
@ApiModelProperty:
⽤于⽅法,字段 ,表⽰对model属性的说明或者数据操作更改
例:
@ApiModel(value = "User", description = "⽤户")
public class User implements Serializable{
private static final long serialVersionUID = 1546481732633762837L;
/**
* ⽤户ID
*/
@ApiModelProperty(value = "⽤户ID", required = true)
@NotEmpty(message = "{id.empty}", groups = {Default.class,New.class,Update.class})
protected String id;
/**
* code/登录帐号
*/
@ApiModelProperty(value = "code/登录帐号")
@NotEmpty(message = "{pty}", groups = {Default.class,New.class,Update.class})
protected String itcode;
/**
* ⽤户姓名
*/
@ApiModelProperty(value = "⽤户姓名")
@NotEmpty(message = "{pty}", groups = {Default.class,New.class,Update.class})
protected String name;
@ApiOperation:
⽤于⽅法,表⽰⼀个http请求的操作 。
@ApiOperation(value = "获取图书信息", notes = "获取图书信息", response = Book.class, responseContainer = "Item", produces = "application/json") @ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "book's name", required = true, dataType = "Long", paramType = "query"),
@ApiImplicitParam(name = "date", value = "book's date", required = false, dataType = "string", paramType = "query")})
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
@ResponseBody
public Book getBook(@PathVariable Long id, String date) {
(id);
}
@ApiResponse:
⽤于⽅法,描述操作的可能响应。
@ApiResponses:
⽤于⽅法,⼀个允许多个ApiResponse对象列表的包装器。
例:
@ApiResponses(value = {
@ApiResponse(code = 500, message = "2001:因输⼊数据问题导致的报错"),
@ApiResponse(code = 500, message = "403:没有权限"),
@ApiResponse(code = 500, message = "2500:通⽤报错(包括数据、逻辑、外键关联等,不区分错误类型)")})
@ApiParam:
⽤于⽅法,参数,字段说明,表⽰对参数的添加元数据(说明或是否必填等)
@Authorization:
声明要在资源或操作上使⽤的授权⽅案。@AuthorizationScope:
介绍⼀个OAuth2授权范围。
@ResponseHeader:
响应头设置,使⽤⽅法。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论