¿Qué aprenderás?
Cuando desarrollas una API, tarde o temprano acabas con controladores llenos de condicionales. Un if para el filtro de búsqueda, otro para la categoría, otro para el rango de precios. Scopes en el modelo, when() en el controlador, validación por otro lado. La lógica de filtrado dispersa por todas partes.
En este curso construimos un sistema completo de filtros, ordenamiento y paginación aplicando DDD-lite. Un enfoque pragmático de Domain-Driven Design que toma los conceptos útiles sin la ceremonia completa.
Estructuramos el proyecto por dominio en lugar de por tipo de archivo. La carpeta Domain/Product contiene todo lo relacionado con productos: filtros, queries, repositorios. La carpeta Http/Api/V1 expone esa lógica al exterior. Separación clara de responsabilidades.
Creamos filtros como clases independientes. Cada filtro en su propio archivo, con una única responsabilidad. SearchFilter, CategoryFilter, PriceMinFilter. Todos pasan por el Pipeline de Laravel, que los ejecuta en secuencia modificando el query.
Implementamos un Enum que actúa como Factory de filtros. Tipado fuerte, autocomplete del IDE, un único lugar donde se definen todos los filtros disponibles. Añadir un filtro nuevo es crear la clase y añadir un case al Enum.
Aplicamos el patrón Repository con interfaces. La Query recibe una interfaz, no la implementación concreta. Esto permite mockear en tests y cambiar la implementación sin tocar el código que la usa.
Construimos un paginador personalizado para APIs. El paginador por defecto de Laravel incluye URLs y HTML pensado para vistas Blade. El nuestro devuelve solo data y meta con información numérica. Limpio para que el frontend construya su propia navegación.
Usamos DTOs para encapsular los datos de la request y Value Objects para convertir valores crudos a tipos seguros. El controlador queda reducido a cuatro líneas: recibe la request, ejecuta la query, devuelve el resource.
Al final tienes un endpoint que acepta filtros, ordenamiento y paginación con una arquitectura que escala. Código limpio, testeable, sin dependencias externas. Todo nativo de Laravel y PHP.
Requisitos
Conocimientos básicos de Laravel
¿A quién va dirigido el curso?
Para desarrolladores Laravel que quieren mejorar la arquitectura de sus APIs sin caer en sobre-ingeniería. Para quienes están cansados de controladores con decenas de condicionales para filtrar y ordenar. Para los que buscan aplicar conceptos de DDD de forma pragmática, tomando lo útil sin la ceremonia completa. Para desarrolladores que prefieren entender el código que escriben en lugar de instalar paquetes de caja negra.
¿Qué hacer en caso de dudas durante el curso?
Los planes de suscripción trimestral y anual incluyen soporte a través del foro del curso.
Las dudas que se planteen en el foro del curso serán respondidas en un plazo máximo de 24 horas laborables.
Las dudas planteadas deben estar relacionadas con el contenido del curso y no con desarrollos personalizados que no estén relacionados con el curso.
Certificado de finalización
Al completar todas las lecciones del curso, obtendrás un certificado de finalización en formato PDF personalizado con tu nombre y un código QR de verificación.
- center_focus_weak Código QR con enlace al curso
- picture_as_pdf Descargable en formato PDF
- person Personalizado con tu nombre
star Disponible exclusivamente para suscriptores.
Valoraciones
1 valoraciones