Buscar en la documentación

Backend

Módulos de la API en Laravel, organizados por dominio y por capa.

2 min de lecturaVer en GitHub

La API es un monolito modular en Laravel 13 sobre PHP 8.4. Cada módulo agrupa un dominio del negocio y se divide en las capas Domain, Application, Infrastructure y Http (ver Capas del backend).

Estructura

backend/
├── app/Modules/
│   ├── Audit/             → auditoría global de solo lectura (incidentes y administración)
│   ├── Auth/              → sesión: login, logout, bloqueo progresivo
│   ├── Dashboard/         → widgets, métricas en caché y diseño por persona
│   ├── Incidents/         → ciclo de vida de los incidentes y catálogos
│   ├── Notifications/     → avisos personales del centro de notificaciones
│   ├── Realtime/          → avisos en tiempo real sin datos (Reverb) y autorización de canales
│   ├── System/            → salud, eventos del sistema y acciones del Super admin (sin Docker)
│   ├── Users/             → administración de personas, jerarquía y permisos efectivos
│   └── Shared/            → lo transversal: errores, identificador de petición, hora y transacciones
│       ├── Domain/
│       ├── Application/
│       ├── Infrastructure/
│       └── Http/
├── bootstrap/app.php      → rutas, middleware global y manejo de errores
├── routes/api.php         → carga las rutas de cada módulo bajo /api/v1
└── tests/
    ├── Arch/              → reglas de arquitectura
    ├── Unit/              → reglas de dominio, sin base de datos
    └── Feature/           → API completa contra MySQL (trazo_test)

Módulos

MóduloEstadoDocumento
SharedListoShared
AuthLogin, sesión, MFA y recuperación y cambio de contraseña listosAuth
IncidentsCRUD, estados, asignación, historial y listado listosIncidents
DashboardWidgets, métricas y diseño por persona listosDashboard
UsersAdministración de personas y de roles, jerarquía y permisos por persona listosUsers
AuditAuditoría de incidentes y de administración listaAudit
RealtimeCanales, avisos de incidentes, de asignación, de notificaciones y de sesión listosRealtime
NotificationsCentro de notificaciones: avisos de mensajes y de actividad listosNotifications
SystemSalud, eventos agrupados y acciones del Super admin listosSystem

Cómo se agrega un módulo

  1. Crear app/Modules/<Módulo>/ con las capas que necesite.
  2. Declarar sus rutas en app/Modules/<Módulo>/Http/routes.php: se cargan solas bajo /api/v1.
  3. Las pruebas de arquitectura lo incluyen automáticamente.

Comandos de calidad

Se ejecutan dentro del contenedor (docker compose exec app composer <comando>), con el modo desarrollo levantado: la imagen final no trae estas herramientas.

ComandoQué hace
composer testPruebas con Pest
composer lintRevisa el formato con Pint
composer formatCorrige el formato
composer analyseAnálisis estático con Larastan (nivel 8)
composer checkLas tres revisiones juntas; debe pasar antes de fusionar a dev

Documentación de funciones

Las clases y funciones se documentan con PHPDoc en el código. phpDocumentor las convierte en un sitio navegable:

docker compose --profile docs run --rm phpdoc

El resultado queda en docs-build/backend/ (fuera de Git). El CI lo genera en cada PR y falla si algún PHPDoc tiene errores (ADR-0065).

Dónde está en el código