У меня есть следующее сопоставление запроса весенней загрузки @RestController:
@RequestMapping({"/api/blog"})
@RestController
public class BlogController {
@RequestMapping(value = "/test", method = RequestMethod.GET)
public Iterable<Blog> filterBy(
@RequestParam(required = false, name = "filter") String filterStr,
@RequestParam(required = false, name = "range") String rangeStr,
@RequestParam(required = false, name="sort") String sortStr) {
...
}
}
Запрос должен выглядеть следующим образом:
GET http://my.api.url/api/blog/test?sort=['title','ASC']&range=[0, 24]&filter={title:'bar'}
Однако, предоставляя любой из параметров запроса массива (диапазон и/ или сортировка) вызывает ответ 400 без каких-либо подробностей, кроме: «HTTP Status 400 - Bad Request»
Выполнение запроса только с запросом filer работает.Добавление диапазона и / или сортировки с нулевыми значениями работает.Вскоре, когда я добавляю скобки [], кажется, что это не удается.
Я попытался добавить следующий обработчик исключений, чтобы отладить проблему как для контроллера, так и для класса ControllerAdvice:
@ExceptionHandler
@ResponseStatus(HttpStatus.BAD_REQUEST)
public void handle(HttpMessageNotReadableException e) {
logger.warn("Returning HTTP 400 Bad Request", e);
}
Однако это не срабатывает.У меня есть подозрение, что что-то происходит в фреймворке, вызывая 400, прежде чем он даже попадет в контроллер.
Любая помощь приветствуется.