Crea Veloces APIs RESTful con Lumen y Homestead de Laravel

Lumen, el micro-framework de Laravel, es ideal para APIs RESTful eficientes. Crea una API RESTful con Lumen y Homestead.
4.8 (55 ratings)
Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
256 students enrolled
$19
$60
68% off
Take This Course
  • Lectures 34
  • Length 3 hours
  • Skill Level All Levels
  • Languages Spanish
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works

Discover

Find online courses made by experts from around the world.

Learn

Take your courses with you and learn anywhere, anytime.

Master

Learn and practice real-world skills and achieve your goals.

About This Course

Published 7/2015 Spanish

Course Description

Crea tu propia API RESTful con Lumen 5 desde cero y paso a paso

¡Este curso posee soporte para las versiones más recienets de Lumen. Lumen 5.1 y 5.2!

En este curso aprende a desarrollar una API RESTful profesional y completamente funcional, usando Lumen, el micro-framework, basado en Laravel.

Lumen es un micro-framework para PHP basado en Laravel. Uniendo las características más resaltadas de Laravel en una versión mucho más liviana y rápida.

¿Por qué Lumen?

Lumen posee las mejores características de Laravel en una entrega mucho más liviana y ágil, sin dejar de ser expresivo, intuitivo, potente y sobre todo sencillo.

Con Lumen conseguirás que tu API soporte por lo menos mil doscientas (1200) peticiones en un rango de 10 segundo, con 10 peticiones simultáneas en cada uno de esos segundos. Esa gran velocidad lo hace el candidato perfecto para implementar una API RESTful en él.

Millones de programadores de PHP usan Laravel y todos concuerdan con la increíble facilidad y agilidad que Lumen proporciona para los proyectos web, lo cual incluye APIs RESTful por supuesto, así que no te quedes atrás.

En Lumen para PHP se han incluido nuevos conceptos y facilidades, similares a las de Laravel, permitiendo conseguir crear micro-servicios de manera ágil, liviana pero muy potente.

Durante el curso, aprenderás todo sobre la nueva estructura y los nuevos conceptos.

Aprenderás esto en Lumen y para tu API RESTful:

  • Principales diferencias y facilidades de Lumen respecto a Laravel
  • Creación de un entorno de desarrollo con Homestead
  • Interacción con las máquinas virtuales de Vagrant
  • Configuración de Homestead con Vagrant y sitios virtuales
  • Configuración y uso del editor de código Sublime Text 3
  • Uso de PHP artisan para creación de código
  • Middlewares globales y middlewares por rutas
  • Creación de modelos
  • Relaciones de uno a muchos entre modelos (1:N)
  • Relaciones de muchos a muchos entre modelos (N:N)
  • Tablas intermediarias o pivote
  • Controladores de peticiones
  • Validación de peticiones
  • Controladores de recursos
  • Controladores REST
  • Manejo y control de excepciones y errores
  • Migraciones (creación automática de bases de datos)
  • Seeds (Inserción automática en bases de datos)
  • Factories, para crear datos de prueba
  • Creación de un servidor de OAuth 2
  • Generación de access_token
  • Protección de recursos con access token
  • Restricción de acceso por medio de access token
  • Optimización del framework para producción
  • Interacción con la base de datos por medio de Eloquent
  • Mucho, mucho más.

Durante el curso crearás una API RESTful desde cero, siguiendo la arquitectura REST y la construcción adecuada de URLs para identificar acciones y recursos usando los controladores para recursos de Lumen.

Exprime al máximo las características de tus herramientas de trabajo (Sublime Text 3, Git shell, Lumen, Composer, PHP artisan) y mejora tu productividad para un desarrollo ágil.

Aprenderás a desarrollar un proyecto local en Windows con Homestead, cómo interactuar con la máquina virtual de Vagrant, con el sistema oprtativo Ubuntu por medio de una conexión ssh.

Verás cómo usar Lumen por medio de la consola de PHP artisan para construir de manera muy ágil una API RESTful que responda a métodos de HTTP (GET, POST, PUT, PATCH y DELETE), también a poblar la base de datos y construir su estructura de manera automatizada.

¡Y no termina ahí! Tendrás acceso de por vida a las clases adicionales que agregaré constantemente al curso.

Al finalizar este curso serás capaz de desarrollar tu propia API RESTful con Lumen y PHP de una manera rápida y simple, explotando al máximo las facilidades proporcionadas por este framework para la correcta y adecuada implementación de tus proyectos web

No esperes más para ser experto en PHP y RESTful. Únete al curso y nos vemos en clases

What are the requirements?

  • Programación en PHP (conocimientos básicos son suficiente)
  • Nociones en POO (algo de herencia y clases)

What am I going to get from this course?

  • Dominio de las más recientes tecnologías de desarrollo web
  • Uso de herramientas livianas y ágiles para proyecto profesionales de la web
  • Desarrollo ágil de proyecto de alta complejidad
  • Conocimiento avanzado y profesional sobre el desarrollo web con PHP

What is the target audience?

  • A quien le guste la programación y el desarrollo web
  • A quien deseen llevar sus capacidades al siguiente nivel
  • Quien busque dominar nuevas técnicas de desarrollo para la web
  • Quien desee se hábil en desarrollo web con PHP

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.

Curriculum

Section 1: Inicio del Curso
02:08

¿De qué se trata el curso? ¿Cómo funciona? ¿Cómo aprovecharlo?

Article

Conoce algunos comentarios acerca de las clases y el contenido del curso.

02:59

Este curso te proporciona una enorme ventaja, que te permitirá hacer el seguimiento de los avances y cambios en el código del proyecto clase por clase, podrás copiar el código y editarlo fácilmente.

07:02

En esta clase verás porqué Lumen es más adecuado que Laravel para una API RESTful, por medio de pruebas AB para determinar la cantidad de peticiones que puede soportar el framework

Section 2: Preparando el Entorno de Desarrollo/Local
10:08

En esta sección verás dónde y cómo descargar las herramientas necesarias, junto con su instalación

  • Oracle Virtual Box
  • Vagrant
  • Git/Github
  • PHP y Composer
  • Sublime Text 3
Article

Esta clase consiste en un sencillo ejercicio, donde deberás habilitar las siguientes extensiones de PHP:

  1. mbstring (necesaria para el correcto funcionamiento de composer y php artisan)
  2. pdo_mysql (necesaria para interactuar con la base de datos MySQL
07:22

Durante esta clase obtendrás una instancia de Lumen y agregarás Homestead como una dependencia de éste, para así tener una instancia de homestead por cada proyecto.

02:42

Durante esta clase aprenderás a instalar, obtener y utilizar homestead.

Homestead es una instancia previamente diseñada y configurada para Vagrant, que permite desplegar en pocos minutos todo un entorno de desarrollo/local, especialmente configurado y adaptado para Laravel o Lumen.

03:02

Durante es clase verás cómo obtener fácilmente Sublime Text 3 e instalar los complementos más adecuados para desarrollar tus proyectos.

Sublime Text 3 es un editor de código, gratuito y muy potente. Es útil para proyectos en múltiples lenguajes entre los cuales por supuesto está incluido PHP. Sublime Text 3 cuenta con muchos complementos también gratuitos que permiten mejorar tu flujo de trabajo.

05:50

Durante esta clase verás y comprenderás el funcionamiento de Vagrant y cómo hacer uso del mismo de manera muy sencilla.

Section 3: Implementando la Estructura Inicial del Proyecto con Lumen
07:42

Durante esta clase verás cómo está estructurado Lumen y las principales diferencias respecto a Laravel. También aprenderás a habilitar los componentes esenciales de Lumen para una mayor facilidad al implementar la API RESTful y configurar el entorno.

07:21

Durante esta clase verás cómo crear los modelos que usaremos en el curso como caso de estudio. Cómo se relacionan entre ellos, relaciones de uno a muchos y de muchos a muchos.

Article

Para ciertos modelos es necesario especificar el correcto nombre de las tablas con las cuales se asocia el modelo al interior de la base de datos, pues Lumen no logra "descifrar" correctamente el nombre de la tabla.


07:30

Durante esta clase verás cómo crear las migraciones para cada uno de los modelos, junto con la migración para la tabla intermedia (pivote) para la relación de muchos a muchos entre el modelo de cursos y de estudiantes.

08:46

Durante esta clase aprenderás a insertar datos de prueba al interior de la base de datos con el nuevo concepto de "factories" de Lumen/Laravel y usando faker para generar datos falsos muy fácilmente,

Article

La tabla de pivote (curso_estudiante) posee los timestamps habilitados y son completamente innecesarios ¿Qué te parece si los eliminas?

12:08

Durante esta clase crearás todas las rutas para gestionar (mostrar, crear, actualizar y eliminar) los tres diferentes recursos que conforman tu API RESTful (profesores, estudiantes, cursos), junto con los cinco controladores necesarios para responder a cada operación sobre los recursos así:

  • El método index => Mostrar todos los recursos asociados => Responde al método GET.
  • store => Almacenar un nuevo recurso => Responde al método POST.
  • show => Mostrar un recurso específico => Responde al método GET.
  • update => Actualizar un recurso existente => Responde al método PATCH/PUT.
  • delete => Eliminar un recurso existente => Responde al método DELETE.
Section 4: Implementando las Operaciones Para Recursos Simples de la API RESTful
06:49

Durante esta clase implementarás las funciones que permiten mostrar los datos relativos a los recursos simples de la API RESTful (Profesores, Cursos y Estudiantes).

Los métodos index y show responden al método GET de HTTP.

Recuerda:

  1. El método index permite mostrar TODOS los recursos solicitados.
  2. El método show permite mostrar un recursos según el identificador recibido (si existe).
07:59

Durante esta clase implementarás las funciones que permiten insertar o crear recursos simples, es decir los NO anidados (Profesor y Estudiante).

El método storage POST de HTTP y se encarga de insertar o almacenar nuevos recursos en la base de datos.

08:06

Durante esta clase implementarás las funciones que permiten editar/actualizar recursos simples (Profesor y Estudiante).

El método update responde a los métodos PUT/PATCH del protocolo HTTP y se encargam de editar los valores de un recurso.

Nota: Los métodos PUT y PATCH, reciben los valores usando x-www-urlencode en lugar de form-data (como lo hace el método POST), esto se debe a la manera en la que está pensado el protocolo HTTP y su implementación en PHP

07:02

Durante esta clase implementarás las funciones que permiten eliminar recursos simples (Profesor y Estudiante).

El método delete responde al método DELETE de HTTP y se encarga de remover un recurso existente.

Nota: Al momento de eliminar hay que ser muy cuidadosos con las claves foráneas, pues un curso no puede ser eliminado sin antes desvincular los estudiantes del mismo y un profesor no puede ser eliminado sin antes remover todos los cursos que éste dicta.

Section 5: Implementando las Operaciones Para Recursos Anidados de la API RESTful
05:41

Durante esta clase implementarás las funciones que permiten mostrar los datos relativos a los recursos anidados, es decir:

  1. Mostrar los estudiantes de un curso y
  2. Mostrar los cursos de un educador

El método index responde al método GET de HTTP.

Recuerda:

  • El método index permite mostrar TODOS los recursos solicitados.
09:50

Durante esta clase implementarás las funciones que permiten insertar o crear recursos anidados, para crear un curso asociándolo a un profesor y agregar un estudiante a un curso.

El método storage POST de HTTP y se encarga de insertar o almacenar nuevos recursos en la base de datos.

04:39

Durante esta clase implementarás las funciones que permiten actualizar o editar recursos anidados (un curso asociado a un profesor).

El método update responde a los métodos PUT y PATCH de HTTP y se encarga de actualizar los valores de un recurso existente.

Nota: PHP en general presenta ciertos problemas al recibir valores con los métodos PUT y PATCH, por lo que se envían (sólo por fines prácticos) como parametros en al URL. Para fines reales se recomienda usar el método POST o url-encode.

06:44

Durante esta clase implementarás las funciones que permiten eliminar recursos anidados (eliminar un curso asociado a un profesor o remover un estudiante de un curso).

El método delete responde al método DELETE de HTTP y se encarga de remover un recurso existente.

Nota: Al momento de eliminar hay que ser muy cuidadosos con las claves foráneas, pues un curso no puede ser eliminado sin antes desvincular los estudiantes del mismo y un profesor no puede ser eliminado sin antes remover todos los cursos que éste dicta.

Section 6: Seguridad y Validación de Peticiones
05:44

Durante esta clase conocerás OAuth2, un mecanismo para la validación de peticiones que permite aumentar la seguridad de la API RESTful y tener un control más estricto y detallado del acceso a los recursos de la API.

04:38

Durante esta clase vas a agregar el servidor de OAuth2 como una dependencia del proyecto, para luego instalarla correctamente al interior del proyecto con todas sus migraciones (tablas) y archivos de configuración.

09:05

Durante esta clase vas a configurar el servidor de OAuth, agregando el "grant_type" para generar los access_token, correr las migraciones, junto con la creación de clientes de prueba para la API.

05:19

Durante esta clase vas a asociar las rutas u operaciones protegidas de los recursos por medio de los middleware de OAuth2 y los controladores.

Un middleware es un mecanismo que se ejecuta antes de atender una petición. En Lumen, es posible ejecutar los middleware en cada petición, o en momentos específicos.

Section 7: Ultimando Detalles
06:45

Es natural que algo pueda fallar en algún punto de la API RESTful y por tal motivo es necesario controlar estos errores por medio de excepciones.

04:24

Durante la realización del curso, al momento de crear cursos automáticamente, éstos quedan asignados a un único profesor, así que para tener un comportamiento más natural en la base de datos, vamos a asignar aleatoriamente el id del profesor, pero para cada uno de los cursos y no para todos :)

03:20

Después del desarrollo de la API, algunas cosas han perdido su "eficiencia" original, por lo que vamos a realizar algunas pruebas de velocidad de nuevo, para dejar Lumen funcionando al 100% de su capacidad de nuevo.

Section 8: Actualizando a Lumen 5.2
09:06

Aprende a actualizar tu proyecto a la versión 5.2 de Lumen y tener un mejor rendimiento

Section 9: ¡Gracias!
01:05

¡Descuida! Nada ha terminado, el curso seguirá teniendo nuevas clases, nuevos contenidos y por supuesto siempre estaré al pendiente de tus preguntas, comentarios y sugerencias.

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

JuanD MeGon, Experienced Web Developer, Programmer and Instructor

Systems and Informatics Engineer - Web Developer

Professional Instructor. Founder of ProgramarYa.

Found professional courses about web development with high quality and availability, PHP, Laravel and Web Development in general.

---------------------------------------------------

Ingeniero de sistemas e informática - Desarrollador Web.

Instructor profesional y fundador de ProgramarYa.

Encuentra cursos profesionales sobre PHP, Laravel y de desarrollo web en general, con alta calidad y disponibilidad.

Ready to start learning?
Take This Course