Вместо самописных проверок используем Bean Validation прямо в модели запроса.
Пример DTO:
-
@Email — проверяет формат почты -
@NotBlank — поле обязательно -
@Size(min, max) — ограничения длины -
@Pattern — проверка по regex Spring автоматически:
- валидирует входящий JSON
- при ошибке возвращает 400 Bad Request
- формирует понятный список ошибок в ответе
То есть API сразу становится “самозащищающимся” от кривых данных.
Важно: логику валидации мы держим рядом с данными, а не размазываем по контроллерам.
Если нужно — формат ответа с ошибками можно полностью переопределить через глобальный exception handler.
Итог: меньше бойлерплейта, чище контроллеры и предсказуемое поведение API.
