170 похожих чатов

Доброго дня. подскажите, пожалуйста, как можно(и можно ли) реализовать валидацию

дат.
в дтохе тела ручки есть поле а-ля:
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DATE_FORMAT)
val birthday: LocalDate?
хочется не ловить 500, если вдруг кто-то кинет какой-нибудь мусор. пришло в голову тупое решение навесить анноташку @Pattern(DATE_FORMAT), но это по очевидной причине не работает.

8 ответов

9 просмотров

Почему не работает ?

Так в случае ошибки валидации будет ошибка 400, а не 500, так что всё нормально

Kirill-Sinyuk Автор вопроса
Alexey Genus 😎
Так в случае ошибки валидации будет ошибка 400, а ...

нуу... 500 и 400 - не одно и то же) + можно перехватить MethodArgumentNotValidException, сформировать список всех ошибок в дтохе и кинуть в ответ

Kirill-Sinyuk Автор вопроса
Frank Richards
Почему не работает ?

похоже потому, что валидация проходит после десериализации. если при десериализации случается DateTimeParseException, валидации не случится

Kirill Sinyuk
похоже потому, что валидация проходит после десери...

Свой десериализатор лучше запили. Так быстрее будет

Kirill Sinyuk
похоже потому, что валидация проходит после десери...

аааа, я понял, в чём дело. Ошибка именно в десериализации, а не в валидации. Тут сходу не подскажу, но для enum’ов в jackson’е можно установить null, если значение неизвестно. Для дат возможно есть подобная настройка, но в таком случае информация о первоначальной строке будет потеряна. Не уверен, что это позволено. Но разве ошибка десериализации не 400? Ведь на сервере всё ок

Сейчас проверил ваш кейс. У меня ошибка ловится в DefaultHandlerExceptionResolver и заворачивается в 400

Kirill-Sinyuk Автор вопроса
Даниил Разоренов
Сейчас проверил ваш кейс. У меня ошибка ловится в ...

ты прав. в контроллерАдвайс оверрайдится, похоже. там есть ловец Throwable но толку? проблема-то в другом.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта