Проверка конечной точки Spring Boot с помощью нескольких частей запросаJAVA

Программисты JAVA общаются здесь
Anonymous
Проверка конечной точки Spring Boot с помощью нескольких частей запроса

Сообщение Anonymous »

У меня есть @RestController со следующей конечной точкой

Код: Выделить всё

@PutMapping
public void updateEvent(
@Valid @RequestPart EventRequest request,
@RequestPart(required = false) MultipartFile file) {
// body omitted
}
EventRequest — это стандартный DTO с такими ограничениями, как

Код: Выделить всё

@NotNull(message = "{event.endDate.empty}")
private LocalDateTime endDate;
Если объект запроса нарушает любое из этих ограничений, генерируется исключение MethodArgumentNotValidException, которое преобразуется в список ошибок проверки в теле ответа.
Раньше можно было загрузить файлы любого типа, но теперь я хочу ограничить типы, поэтому внес следующие изменения:

Код: Выделить всё

@PutMapping
public void updateEvent(
@Valid @RequestPart EventRequest request,
@Valid @ValidFileType @RequestPart(required = false) MultipartFile file) {
// body omitted
}

Код: Выделить всё

ValidFileType
— это аннотация проверки, подобная этой, которая сопоставлена ​​с реализацией ConstraintValidator, подобной этой.
После того, как я добавил эти аннотации, если проверка EventRequest завершается неудачно, генерируется другое исключение HandlerMethodValidationException, которое не преобразуется в список ошибок проверки.
Почему возникает другое исключение выдается, когда я добавляю проверку в часть запроса файла, и можно ли сохранить предыдущее поведение?
Я не уверен, актуально ли это, но ни метод конечной точки, ни класс @RestController не помечены @Validated.

Подробнее здесь: https://stackoverflow.com/questions/789 ... uest-parts

Вернуться в «JAVA»