@ApiOperation、@ApiModelProperty、@Valid都是啥注解?
作者:神秘网友
发布时间:2020-08-26 14:32:51
@ApiOperation、@ApiModelProperty、@Valid都是啥注解?
@ApiOperation、@ApiModelProperty、@Valid都是啥注解?@ApiOperation、@ApiModelProperty、@Valid都是啥注解?
- @ApiOperation
- 有什么用?
- 参数说明?
- 怎么用?
- @ApiModelProperty
- 有什么用?
- 参数说明?
- 怎么用?
- @Valid
- 有什么用?
- 参数说明?
- 怎么用?
- 补充:为实体属性添加验证条件的注解
@ApiOperation
[var1]
我看到的代码是写在controller层的方法上面。
这个注解是swagger包里的,所以肯定和接口有关,果然,是用来为接口添加说明的。
[var1]
和@ApiOperation类似的还有@ApiParam,作用是为添加的API相关注解。
参数说明如下:
@ApiOperation(value = “接口说明”, httpMethod = “接口请求方式”, response = “接口返回参数类型”, notes = “接口发布说明) @ApiParam(required = “是否必须参数”, name = “参数名称”, value = “参数具体描述”)
[var1]
用法举例:
controller层某个方法上:
@ApiOperation(value = "****", notes = "****") @ResponseBody @GetMapping(path = "/接口名") public StdJsonFmt 方法名(HttpServletRequest request, @Valid 实体类 实体对象名) { }
@ApiModelProperty
[var1]
我看到的是写在实体类的属性上面,用来表示对model属性的说明或者数据操作的更改
[var1]
@ApiModelProperty(value = “字段说明”, name = “重写属性名字”, dataType= “重写属性类型”, required= “是否必填”, example= “举例说明”, hidden= “隐藏”,)
[var1]
用法举例:
public class User{ @ApiModelProperty(value="用名",name="username",example="xingguo") private String username; @ApiModelProperty(value="状态",name="state",required=true) private Integer state; @ApiModelProperty(value="id数组",hidden=true) private String[] ids; }
@Valid
[var1]
我看到的是写在controller层方法的实体类参数前面,
用于验证注解是否符合要求,在实体类属性中添加验证信息的要求,当不符合要求时就会在方法中返回message 的错误提示信息
[var1]
无参数
[var1]
用法举例:
首先在实体类里对一些属性通过注解添加验证条件
public class User { private String id; @NotBlank(message = "密码不能为空") private String password; }
然后在controller层里用到该实体类作为方法参数时,添加@Valid注解验证实体属性是否满足验证条件
@RestController @RequestMapping("/user") public class UserController { @PostMapping public User create (@Valid @RequestBody User user) { System.out.println(user.getId()); System.out.println(user.getUsername()); System.out.println(user.getPassword()); user.setId("1"); return user; } }
密码如果为空的话,上面 Controller 中的 create 方法会返回message 中的"密码不能为空"。
[var1]
@valid注解参考https://blog.csdn.net/weixin_38118016/article/details/80977207