Я делаю простое приложение с весенней загрузкой, и мне нужно получить список объектов, которые я фильтрую по параметрам, которые не требуются. Таким образом, в основном пользователь может отправлять параметры, но не обязан. Лучшее решение, которое я нашел, - это использование аннотации @RequestParam, но, похоже, она не работает. Если я ставлю оба параметра, он работает отлично, но если я установил только один или ни одного, я получаю ошибку. Нужно ли перегружать методы для каждого случая, или есть более плавный способ справиться с этим (если это возможно, используя запрос get)?
Мой контроллер:
@RequestMapping(
value = "/fruits",
params = {"apple", "orange"},
method = GET)
public ResponseEntity<List<Fruit>> getFruits(
@RequestParam(value = "apple", required = false, defaultValue = "")
List<Apple> apple,
@RequestParam(value ="orange", required = false, defaultValue = "")
List<Orange> orange) {
List<Fruit> fruit = projectService.getFruits(apple, orange);
return ResponseEntity.ok().body(fruit);
}
Ошибка:
{
"timestamp": "2019-01-20T21:26:52.287+0000",
"status": 400,
"error": "Bad Request",
"message": "Parameter conditions \"apple, orange\" not met for actual
request parameters: ",
"path": "/api/fruits"
}