Buscar en la documentación

Capas del backend

Cómo se divide cada módulo de la API y qué puede depender de qué.

1 min de lecturaVer en GitHub

Cada módulo de la API (app/Modules/<Módulo>) se divide en cuatro capas. Las dependencias solo apuntan hacia adentro: el dominio no conoce a nadie y todo lo demás puede usarlo.

flowchart LR
  H[Http] --> A[Application]
  A --> D[Domain]
  I[Infrastructure] --> D
  H -.-> D
CapaContieneNo puede usar
DomainReglas de negocio, enums, excepciones de dominio, contratos (interfaces)Laravel, ni ninguna otra capa
ApplicationCasos de uso, DTOs y servicios de consultaLa capa Http, el request de Laravel ni Eloquent
InfrastructureModelos Eloquent, repositorios, caché, integraciones—
HttpControladores delgados, FormRequests, Resources, Policies, rutas del móduloConsultas directas a la base de datos

Lo transversal vive en el módulo Shared con la misma división.

Cómo se garantiza

Las reglas de la tabla no dependen de la disciplina de cada persona: la prueba de arquitectura recorre todos los módulos y falla si alguna capa usa algo que no le corresponde. Además verifica que todo el código use tipos estrictos, que no queden funciones de depuración, que las variables de entorno se lean solo desde config/ y que todo correo que sale por la cola viaje cifrado.

Dónde está en el código