我有一个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/

10-10 14:25