У меня очень простой 3-уровневый слой ASP.NET Core WebAPI
приложение:
- Домен - с
Entities
, Data interfaces
, Services
и DTO
объекты (которые являются единственными входными и выходными объектами). Таким образом, "интерфейс домена" - это службы, которые принимают входные DTO и возвращают выходные DTO. - Инфраструктура - реализация
Data interfaces
(хранилища данных) и CodeFirst Migrations. - WebAPI - Стандартный ASP. NET Core 3.1 Проект веб-API.
Проект WebAPI возвращает DTO "Output" в контроллерах. Для конечных точек, которые принимают полезную нагрузку, используются входные DTO. Контроллеры очень похожи на Сервисы из Домена. Контроллеры выставляют Доменные Сервисы миру (очевидно, интерфейсу Домена).
Но потом идет валидация ... Я знаком с FluentValidation и с ASP. NET Core-сантехникой - это потрясающее промежуточное ПО:
services.AddControllers()
.AddFluentValidation(opt =>
{
opt.RegisterValidatorsFromAssemblyContaining(typeof(PersonInputValidator));
});
Я реализую валидацию для каждого "Входного" DTO, и это прекрасно работает, НО ... Я не уверен, что этого достаточно. Если вы берете какой-либо класс обслуживания, он практически не проверен. Это. NET Базовое промежуточное программное обеспечение, которое технически проверяет ввод в Контроллер.
Должен ли я снова "дважды проверить" в Сервисах? Если да, есть ли плавный способ повторного использования валидаторов, которые у меня уже есть?