@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]

@ApiOperation、@ApiModelProperty、@Valid都是啥注解?
@valid注解参考https://blog.csdn.net/weixin_38118016/article/details/80977207

@ApiOperation、@ApiModelProperty、@Valid都是啥注解?相关教程