当前位置:   article > 正文

swagger常用注解_swagger注解 required 不起作用

swagger注解 required 不起作用

常用到的注解有:

  • Api
  • ApiModel
  • ApiModelProperty
  • ApiOperation
  • ApiParam
  • ApiResponse
  • ApiResponses
  • ResponseHeader

1. api标记

Api 用在类上,说明该类的作用。可以标记一个Controller类做为swagger 文档资源,使用方式:

@Api(value = "/user", description = "Operations about user")

与Controller注解并列使用。 属性配置:

属性名称备注
valueurl的路径值
tags如果设置这个值、value的值会被覆盖
description对api资源的描述
basePath基本路径可以不配置
position如果配置多个Api 想改变显示的顺序位置
producesFor example, "application/json, application/xml"
consumesFor example, "application/json, application/xml"
protocolsPossible values: http, https, ws, wss.
authorizations高级特性认证时配置
hidden配置为true 将在文档中隐藏

在SpringMvc中的配置如下:

  1. @Controller
  2. @RequestMapping(value = "/api/pet", produces = {APPLICATION_JSON_VALUE, APPLICATION_XML_VALUE})
  3. @Api(value = "/pet", description = "Operations about pets")
  4. public class PetController {
  5. }

2. ApiOperation标记

ApiOperation:用在方法上,说明方法的作用,每一个url资源的定义,使用方式:

  1. @ApiOperation(
  2. value = "Find purchase order by ID",
  3. notes = "For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions",
  4. response = Order,
  5. tags = {"Pet Store"})

与Controller中的方法并列使用。
属性配置:

属性名称备注
valueurl的路径值
tags如果设置这个值、value的值会被覆盖
description对api资源的描述
basePath基本路径可以不配置
position如果配置多个Api 想改变显示的顺序位置
producesFor example, "application/json, application/xml"
consumesFor example, "application/json, application/xml"
protocolsPossible values: http, https, ws, wss.
authorizations高级特性认证时配置
hidden配置为true 将在文档中隐藏
response返回的对象
responseContainer这些对象是有效的 "List", "Set" or "Map".,其他无效
httpMethod"GET", "HEAD", "POST", "PUT", "DELETE", "OPTIONS" and "PATCH"
codehttp的状态码 默认 200
extensions扩展属性

在SpringMvc中的配置如下:

  1. @RequestMapping(value = "/order/{orderId}", method = GET)
  2. @ApiOperation(
  3. value = "Find purchase order by ID",
  4. notes = "For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions",
  5. response = Order.class,
  6. tags = { "Pet Store" })
  7. public ResponseEntity<Order> getOrderById(@PathVariable("orderId") String orderId)
  8. throws NotFoundException {
  9. Order order = storeData.get(Long.valueOf(orderId));
  10. if (null != order) {
  11. return ok(order);
  12. } else {
  13. throw new NotFoundException(404, "Order not found");
  14. }
  15. }

3. ApiParam标记

ApiParam请求属性,使用方式:

public ResponseEntity<User> createUser(@RequestBody @ApiParam(value = "Created user object", required = true)  User user)

与Controller中的方法并列使用。

属性配置:

属性名称备注
name属性名称
value属性值
defaultValue默认属性值
allowableValues可以不配置
required是否属性必填
access不过多描述
allowMultiple默认为false
hidden隐藏该属性
example举例子

在SpringMvc中的配置如下:

  1. public ResponseEntity<Order> getOrderById(
  2. @ApiParam(value = "ID of pet that needs to be fetched", allowableValues = "range[1,5]", required = true)
  3. @PathVariable("orderId") String orderId)

4. ApiResponse

ApiResponse:响应配置,使用方式:

@ApiResponse(code = 400, message = "Invalid user supplied")

与Controller中的方法并列使用。 属性配置:

属性名称备注
codehttp的状态码
message描述
response默认响应类 Void
reference参考ApiOperation中配置
responseHeaders参考 ResponseHeader 属性配置说明
responseContainer参考ApiOperation中配置

在SpringMvc中的配置如下:

  1. @RequestMapping(value = "/order", method = POST)
  2. @ApiOperation(value = "Place an order for a pet", response = Order.class)
  3. @ApiResponses({ @ApiResponse(code = 400, message = "Invalid Order") })
  4. public ResponseEntity<String> placeOrder(
  5. @ApiParam(value = "order placed for purchasing the pet", required = true) Order order) {
  6. storeData.add(order);
  7. return ok("");
  8. }

5. ApiResponses

ApiResponses:响应集配置,使用方式:

 @ApiResponses({ @ApiResponse(code = 400, message = "Invalid Order") })

与Controller中的方法并列使用。 属性配置:

属性名称备注
value多个ApiResponse配置

在SpringMvc中的配置如下:

  1. @RequestMapping(value = "/order", method = POST)
  2. @ApiOperation(value = "Place an order for a pet", response = Order.class)
  3. @ApiResponses({ @ApiResponse(code = 400, message = "Invalid Order") })
  4. public ResponseEntity<String> placeOrder(
  5. @ApiParam(value = "order placed for purchasing the pet", required = true) Order order) {
  6. storeData.add(order);
  7. return ok("");
  8. }

6. ResponseHeader

响应头设置,使用方法

@ResponseHeader(name="head1",description="response head conf")

与Controller中的方法并列使用。 属性配置:

属性名称备注
name响应头名称
description头描述
response默认响应类 Void
responseContainer参考ApiOperation中配置

在SpringMvc中的配置如下:

@ApiModel(description = "群组")

7. 其他

  • @ApiImplicitParams:用在方法上包含一组参数说明;
  • @ApiImplicitParam:用在@ApiImplicitParams注解中,指定一个请求参数的各个方面
    • paramType:参数放在哪个地方
    • name:参数代表的含义
    • value:参数名称
    • dataType: 参数类型,有String/int,无用
    • required : 是否必要
    • defaultValue:参数的默认值
  • @ApiResponses:用于表示一组响应;
  • @ApiResponse:用在@ApiResponses中,一般用于表达一个错误的响应信息;
    • code: 响应码(int型),可自定义
    • message:状态码对应的响应信息
  • @ApiModel:描述一个Model的信息(这种一般用在post创建的时候,使用@RequestBody这样的场景,请求参数无法使用@ApiImplicitParam注解进行描述的时候;
  • @ApiModelProperty:描述一个model的属性。



作者:Xiangdong_She
链接:https://www.jianshu.com/p/12f4394462d5
來源:简书

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/373081
推荐阅读
相关标签
  

闽ICP备14008679号