BACKEND API PARA UN CRUD CON PROGRAMACIÓN MODULAR
API RESTful desarrollada con una arquitectura modular, implementando patrones de diseño y autenticación segura mediante Laravel Sanctum. Diseñada para ser escalable, facilita la gestión de usuarios y clientes, garantizando integridad de datos y aprovechando el tipado estricto de PHP para un desarrollo más robusto y preparado
Stack Tecnológico
Descripción completa
Este proyecto es una API RESTful robusta desarrollada con Laravel 12 que implementa una arquitectura modular limpia siguiendo principios SOLID y patrones de diseño avanzados. El sistema está diseñado para gestionar usuarios y clientes de manera eficiente, proporcionando autenticación segura mediante Laravel Sanctum con tokens de acceso personal.
La API utiliza una arquitectura de capas que separa las responsabilidades: Controllers (capa de presentación), Services (lógica de negocio), Repositories (acceso a datos) y DTOs (transferencia de datos tipada). Esta estructura facilita el mantenimiento, testing y escalabilidad del proyecto.
El enfoque principal es ofrecer una API moderna, segura, totalmente documentada y lista para producción con Docker.
Características principales
- Autenticación con Laravel Sanctum: Tokens seguros con expiración configurable y registro de IP
- Arquitectura Modular: Separación clara de responsabilidades usando Service Layer y Repository Pattern
- DTOs (Data Transfer Objects): Transferencia de datos tipada e inmutable entre capas
- Dependency Injection: Inversión de control mediante contratos e interfaces
- Form Request Validation: Validación centralizada y reutilizable en cada endpoint
- API Documentation: Documentación automática generada con Scribe 5.5
- Docker Ready: Configuración completa de contenedores con Nginx y PHP-FPM
- Testing Completo: Tests unitarios y de integración con PHPUnit
- Rate Limiting: Protección contra ataques de fuerza bruta en endpoints críticos
- Gestión de Módulos: Sistema CRUD completo para Usuarios y Clientes
Arquitectura y Patrones de Diseño
Estructura Modular
app/
├── Http/
│ ├── Controllers/ # Capa de presentación (Thin Controllers)
│ ├── Requests/ # Validación de datos (Form Requests)
│ └── Resources/ # Transformación de respuestas (API Resources)
├── Models/ # Modelos Eloquent
└── Modules/ # Arquitectura modular
└── Customer/
├── Contracts/ # Interfaces (Dependency Inversion)
├── Dtos/ # Data Transfer Objects
├── Repositories/ # Data Access Layer
├── Services/ # Business Logic Layer
└── Converters/ # Transformadores Modelo ↔ DTO
Patrones Implementados
- Repository Pattern: Abstracción de acceso a datos
- Service Layer Pattern: Lógica de negocio desacoplada
- DTO Pattern: Objetos inmutables para transferencia de datos
- Dependency Injection: IoC Container de Laravel
- Converter Pattern: Transformación entre capas
- Form Request Validation: Validación centralizada
Principios SOLID
✅ Single Responsibility: Cada clase tiene una única responsabilidad
✅ Open/Closed: Abierto para extensión, cerrado para modificación
✅ Liskov Substitution: Las implementaciones son intercambiables
✅ Interface Segregation: Interfaces específicas y cohesivas
✅ Dependency Inversion: Dependencia de abstracciones
Seguridad
- Autenticación basada en tokens Sanctum
- Rate limiting en endpoints críticos
- Validación de datos en todas las entradas
- Protección CSRF
- Registro de IPs por token de acceso
- Hashing seguro de contraseñas con bcrypt
Documentación API
La documentación completa de la API está disponible en /docs y es generada automáticamente con Scribe, incluyendo:
- Todos los endpoints disponibles
- Parámetros requeridos y opcionales
- Ejemplos de peticiones y respuestas
- Autenticación requerida por endpoint
- Códigos de estado HTTP