-
Notifications
You must be signed in to change notification settings - Fork 0
Validacion
Cada caso de uso que necesita validación anida su Validator
(AbstractValidator<Request>) junto a sus contratos — mismo archivo, misma
regla de siempre: lo que cambia junto vive junto. Es opt-in: DeleteProduct
no tiene validator ni filtro.
El validator corre en un endpoint filter (Common/Endpoints/ValidationFilter.cs),
que se aplica en el mapeo con .WithValidation<CreateProduct.Request>(): si el
request es inválido responde 400 ValidationProblem sin llegar al handler, así
que los handlers solo contienen lógica de negocio y asumen requests válidos.
Los filters son la alternativa de Minimal APIs a los "behaviors" de MediatR
para cross-cutting concerns (el siguiente candidato típico: idempotencia).
Los validators se descubren con AddValidatorsFromAssembly (cuarto
auto-descubrimiento: endpoints, event handlers, configuraciones EF,
validators). Se testean directo y sin infraestructura:
new CreateProduct.Validator().Validate(request).
Ver también: Manejo-Global-de-Errores · Agregar-un-Caso-de-Uso-Nuevo · Home
- Estructura del Proyecto
- El Handler de un Caso de Uso
- Reglas que Mantienen el Orden
- Validación
- Manejo Global de Errores
- Logging Estructurado
- Health Checks
- CORS
- Rate Limiting
- Paginación
- Autenticación y Autorización
- Manejo de Secretos
- Eventos In-Process
- Contrato OpenAPI → TypeScript
- Composición en Program.cs
- Agregar un Caso de Uso Nuevo
- Gestión de Paquetes y Build
- Correr el Proyecto
- Fallas al Guardar
- Persistencia