Saltar al contenido

play_circle_outline
vista previa
2 minutos
file_download
Proyecto final
N/A
file_download
Colección Bruno Client
N/A

play_circle_outline
vista previa
5 minutos
play_circle_outline
vista previa
7 minutos

play_circle_outline
vista previa
3 minutos
play_circle_outline
vista previa
4 minutos

play_circle_outline
FilterValue
4 minutos
play_circle_outline
Filter base
3 minutos
play_circle_outline
SorterFilter
7 minutos

play_circle_outline
Búsqueda de texto
3 minutos
play_circle_outline
Categoría y marca
2 minutos
play_circle_outline
Rango de precios
2 minutos
play_circle_outline
Estado activo
3 minutos
play_circle_outline
Ordenar productos
2 minutos
play_circle_outline
Factory de filtros
3 minutos

play_circle_outline
Contrato de repositorio
3 minutos
play_circle_outline
Implementación con Eloquent
3 minutos
play_circle_outline
Inversión de dependencias
2 minutos

play_circle_outline
Paginación personalizada
3 minutos
play_circle_outline
DTO de filtros
2 minutos

play_circle_outline
Caso de uso ListProducts
6 minutos

play_circle_outline
Validar petición de listado
4 minutos
play_circle_outline
API Resource
3 minutos
play_circle_outline
Controlador
3 minutos
play_circle_outline
Definir rutas
3 minutos

play_circle_outline
Probar con Bruno
8 minutos
Vídeo de introducción API Query System en Laravel con DDD-lite
play_circle_filled

Desbloquea el curso

starVer planes de suscripción
school

¿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.

assignment

Requisitos

group

¿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.

help_outline

¿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.

card_membership

Certificado de finalización

emoji_events

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.

Especialista con +15 años de experiencia en desarrollo web Full Stack. Dominio avanzado en Laravel y Vue.js, creando aplicaciones modernas de alto rendimiento. Instructor profesional con 8 años compartiendo conocimiento a través de cursos especializados que han formado a cientos de desarrolladores.

Israel Parra

Desarrollador Full Stack & Formador

Valoraciones

5
star star star star star

1 valoraciones

star star star star star
star star star star star_border
star star star star_border star_border
star star star_border star_border star_border
star star_border star_border star_border star_border
Jhon Fabio Cardona Martinez

hace 3 meses

Jhon Fabio Curso muy fundamental para el desarrollo de API
star star star star star
Me gustó la forma en que está estructurado el proyecto, ya que permite comprender claramente la lógica dentro de cada una de las carpetas. Considero que este curso es fundamental para el desarrollo de APIs en Laravel, ya que facilita la implementación de filtros y promueve la reutilización de código en gran parte del proceso.
visibility Vista previa

star

¿Te gusta lo que ves? Accede a este curso completo y a más de 200 cursos con una suscripción.

launch Ver planes de suscripción