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

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

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

8 ответов

8 просмотров

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

Так в случае ошибки валидации будет ошибка 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 но толку? проблема-то в другом.

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

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

Мужики и девушки, привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных...
Kraszx
14
Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Я вот подумал. SSE выполняет операции максимум с 64-битной точностью. А FPU - всегда с 80-битной. Разве не должно быть FPU точнее тогда?
The Bird of Hermes
13
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
как быть с принтером? такой подход прокатит?
zamtmn
12
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Я не понимаю, это троллинг или что? Швабрика поддерживают, который буквально пишет на ассемблере взаимодействия с винапи. Я это ещё написал загрузчик и хоть что-то изучаю в о...
Shadow Akira
6
А вот это что за конструкция? Вернее, она тут нафига?
Serjone
10
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
Карта сайта