BACKEND API PARA UN CRUD CON PROGRAMACIÓN MODULAR

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

23 de noviembre de 2025
6 tecnologías

Stack Tecnológico

Laravel 12 PHP Laravel Sanctum PostgreSQL Docker Scribe

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