В моем @Restcontroller есть следующий метод:
@GetMapping
public List<User> getByParameterOrAll(
@RequestParam(value = "email", required = false) String email,
@RequestParam(value = "phone", required = false) String phone) {
List<User> userList;
if ((email != null && !email.isEmpty()) && (phone == null || phone.isEmpty())) {
userList = super.getByEmail(email);
} else if ((email == null || email.isEmpty()) && (phone != null)) {
userList = super.getByPhone(phone);
} else {
userList = super.getAll();
}
return userList;
}
Этот метод позволяет обрабатывать следующие GET-запросы:
GET: /customers/
GET: /customers?email=emai@email.com
GET: /customers?phone=8-812-872-23-34
Но при необходимости добавить еще несколько параметров для запрос. Если это будет 10 или ... 20 параметров, тело метода выше возмутительно! Если есть какой-либо способ передать значение @RequestParam в тело метода, я мог бы понять, например:
@GetMapping
public List<User> getByParameterOrAll(
@RequestParam(value = "any", required = false) String any) {
if (value=="email") {
userList = super.getByEmail(email);
} else if (value=="email") {
userList = super.getByPhone(email);
} else if .....
}
Есть ли способ использовать @ RequestParam-value в теле метода?