Условная валидация на остальные API - PullRequest
0 голосов
/ 26 марта 2020

У меня есть 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, который передается через, содержит TypeEnum, равный admin, я хотел бы сделать проверку, которая гарантирует, что adminID пройден через, если TypeEnum передан в кассе типа я не хотел бы применять эту проверку

1 Ответ

0 голосов
/ 26 марта 2020

Вы можете добавить пользовательскую проверку, используя @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;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...