我有一个api,其中包含一个接受对象作为请求正文的方法。我想做的是应用条件验证。看下面的代码:
@Override
@PostMapping(value = "/private/getUsers/",
produces = {"application/json"},
consumes = {"application/json"})
public ResponseEntity<Object> getUsers(@ApiParam(value = "Request object for users", required = true)
@Valid @RequestBody USerType userType) {
//do stuff here
return new ResponseEntity<>(Object, HttpStatus.OK);
}
class UserType {
TypeEnum typeEnum
String name;
String adminId
//getters and setters
}
因此,如果传递的UserType对象包含等于admin的TypeEnum,则我想进行验证以确保传递adminID,如果传递的TypeEnum是出纳员类型,则我不希望执行此验证
最佳答案
您可以使用@AssertTrue
添加自定义验证。
试试这个课程:
class UserType {
TypeEnum typeEnum
String name;
String adminId
//getters and setters
@AssertTrue
public boolean isValid() {
if (TypeEnum.admin == typeEnum) {
if (check admin id not blank){
return true;
}
return false;
}
return true;
}
}
关于java - REST API的条件验证,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60867341/