Pageable по умолчанию не выдает исключение, если передан неверный размер или страница - PullRequest
1 голос
/ 02 ноября 2019

Когда недопустимый размер или страница передаются бэкэнду, Spring использует свой объект Pageable по умолчанию (с page = 0, size = 20) вместо того, чтобы выдавать исключение. Есть ли способ переопределить это поведение? Мне нужно, чтобы оно генерировало исключение, которое позже будет обработано моим обработчиком исключений, поэтому пользователь увидит 400 - BadRequest.

Я попытался настроить PageableHandlerMethodArgumentResolver, установив fallBackPageable для пользовательского Pageable. Но это не сработало. Я могу изменить один Pageable по умолчанию на другой (с другими значениями страницы и размера), но не могу заставить его выбросить исключение.

@GetMapping("all")
    public ResponseEntity<PageableDto> getAllUsers(@ApiIgnore Pageable pageable) {
        return ResponseEntity.status(HttpStatus.OK).body(userService.findByPage(pageable));
    }
  • Вот запрос curl -X GET "http://localhost:8080/user/all?page=-99&size=-99"";
  • А вот что обычно поступает в контроллер: page = 0, size = 20;
...