3.0Kпросмотров
45.7%от подписчиков
20 января 2026 г.
📷 ФотоScore: 3.3K
✅ API Input Validation в .NET: почему FluentValidation лучше, чем Data Annotations Data Annotations отлично подходят для простых правил: [Required] - ок [MaxLength(50)] - норм Но как только тебе нужно что-то “умнее”, начинается боль: - проверить данные в базе
- валидировать по настройкам из appsettings.json
- вызвать сервис и принять решение динамически Data Annotations упираются в потолок, потому что Attribute - это статичная штука.
Туда не получится нормально прокинуть зависимости через DI. И вот здесь FluentValidation реально сияет ✨ Почему:
FluentValidation-валидаторы - это обычные классы, которые регистрируются в DI контейнере.
А значит, внутрь можно инжектить что угодно: - сервисы
- конфиги
- репозитории
- кэш
- внешние API Пример:
нужно проверить, что CouponCode валиден через IPricingService?
Просто инжектишь IPricingService в конструктор валидатора и делаешь проверку. В итоге валидация превращается из “статической проверки полей”
в полноценный слой логики - динамический, умный и расширяемый. FluentValidation = правильная валидация для реального продакшена.