Curso de Desarrollo de API RESTful con Laravel

Aprende a crear una completa API RESTful con las funcionalidades más avanzadas en el framework PHP Laravel
Material disponible
Intermedio
37 Clases 16 h
99€
75€
Precio en promoción
En este curso los estudiantes aprenderán a construir una completa API RESTful con el lenguaje PHP y el framework Laravel 5.5. Se abordarán todas las técnicas básicas y avanzadas para la construcción de servicios web totalmente profesionales, con autenticación del lado del servidor por medio de OAuth2, acceso CORS, navegación entre recursos con HATEOAS y muchas cosas más.

Qué aprenderé en el Curso de Desarrollo de API RESTful con Laravel

En líneas generales, una API RESTful es una interfaz de acceso a datos de un servidor por medio de HTTP, en la que se obtiene como respuesta la información generalmente en formato JSON. Las APIs RESTful tienen la particularidad de no mantener estado de la aplicación, lo que facilita asuntos tan importantes como la escalabilidad y siguen el estandard REST para su implementación y funcionamiento

Hoy casi cualquier proyecto mediano o grande dispone de una API mediante la cual se ofrece información a todo tipo de clientes. Como la comunicación se realiza mediante HTTP, casi cualquier sistema es capaz de conectarse con el API y usarla para consumir sus recursos, sin importar el sistema o lenguaje de programación usado.

Existen muchos motivos por los que implementar un proyecto backend con base en una API RESTful. El más importante es la completa separación entre backend y frontend, lo que permite desarrollar un proyecto de una complejidad media o alta con dos arquitecturas completamente separadas. Con ello se consigue no solo un producto de más fácil mantenimiento, sino también la posibilidad de crear diferentes sistemas (clientes) que consumen un mismo backend (la API). Es decir, permite desarrollar un único backend, basado en una API, para dar soporte a una aplicación web, una aplicación para móviles iOS / Android, aplicación de escritorio y cualquier otro producto que más adelante se pretenda incorporar.

Existen muchas formas de construir una simple API o servicio web, pero en este curso, vas a crear una verdadera API RESTful, lo cual te permitirá seguir las mejores prácticas y así tener un sistema altamente escalable y mantenible.

Objetivos del curso

Este curso tiene un componente mayormente práctico. A lo largo de las distintas sesiones se irá desarrollando un proyecto de API RESTful, comenzando por el entorno de trabajo y la instalación de Laravel, los componentes más sencillos del servicio web y luego los recursos más complejos. En las últimas sesiones se implementará la capa de seguridad, para controlar el acceso a los diferentes recursos usando OAuth2.

A continuación resumimos las sesiones que se ofrecen en este curso, junto con los contenidos que se van a impartir en cada una de ellas.

  • Preparación del Proyecto
    Se introducirán y crearán los componentes necesarios para la estructura inicial del proyecto (modelos, controladores, rutas, migraciones y factories) y se implementarán los modelos de la API (atributos y relaciones).

  • Implementación de los Componentes Restantes de la API RESTful
    Se implementarán componentes restantes como migraciones y factories para poblar la base de datos de forma automatizada, junto con un controlador Inicial de operaciones sobre el recurso User.

  • Generalizando el Código y Mejorando el Funcionamiento de la API
    Se implementarán algunas funciones sobre los nuevos recursos del API REST. Se refactorizará el código anterior para centralizar la construcción de las respuestas en un mismo componente reutilizable (trait). Además se explicará el el manejo de los diferentes errores y excepciones.

  • Comenzando operaciones complejas de la API RESTful
    Se implementarán las operaciones requeridas, junto con sus respectivas rutas, para nuevos recursos fundamentales de la API RESTful, junto con algunas operaciones complejas, las cuales incluyen más de un recurso por operación.

  • Finalizando las Operaciones Complejas
    Se terminarán de implementar las operaciones complejas, incluyendo la funcionalidad principal que es la creación de transacciones (venta de productos) mediante el API.

  • Agregando Nuevas Características a la API y Transformando las Respuestas para Aumentar la Compatibilidad
    Se agregarán algunas características de ayuda para el manejo de productos en la API, junto con la implementación de un sistema de transformación de las respuestas, que permitirá eliminar la dependencia entre la estructura de las respuestas y la base de datos.

  • Implementando HATEOAS en la API
    Abordaremos HATEOAS, una pieza fundamental para cualquier API que se haga llamar RESTful. Por medio de HATEOAS, se facilita la “navegación” entre recursos y el acceso a los mismos.

  • Implementando la capa de seguridad usando OAuth2
    En esta clase, haremos uso de Laravel Passport para implementar todo un sistema de seguridad y control de acceso a la API por medio de OAuth2.

  • Usando los diferentes flujos de acceso de OAuth2 y soportando CORS en la API
    En esta clase usaremos los principales flujos de acceso que nos permite la API por medio de OAuth2, para proteger el acceso a la API en diferentes niveles, adicionalmente agregaremos acceso a CORS, para facilitar el consumo de la API desde navegadores.

Por qué debes aprender Desarrollo de API RESTful con Laravel

Laravel es uno de los frameworks PHP más populares. Ha conseguido una gran comunidad de usuarios en poco tiempo, colocándose a la cabeza de los frameworks más usados y de los proyectos Open Source con mayor avance. Eso es resultado de la cantidad de ayudas y guías de diseño de software que facilitan el desarrollo de proyectos de todo tipo.

Laravel permite desarrollar cualquier tipo de sitio web, basado en contenido, así como servicios web como podrían ser las APIs RESTful. Ofrece una base de código sólida y patrones de diseño consolidados en la industria, para desarrollar más rápido y crear proyectos más fácilmente mantenibles. A la vez, consigue mantener una experiencia de trabajo sencilla y amigable para el desarrollador.

La nueva versión del framework, Laravel 5.5, se ofrece con nuevas características que facilitan aún más el desarrollo de proyectos de API REST, que ayudan a reducir las tareas repetitivas y escribir menor cantidad de código.

Crear entornos de trabajo para empezar a desarrollar con Laravel está al alcance de cualquier desarrollador, de modo que es fácil comenzar a desarrollar. Cuando el proyecto está finalizado, llevar a producción aplicaciones en Laravel es sencillo, ya el lenguaje PHP dispone de soporte altamente extendido y los requisitos del framework son bastante sencillos de disponer.

Qué tengo que saber

Este curso está dirigido a desarrolladores de PHP experimentados, que ya tengan una base de conocimiento sólida en el lenguaje. No es absolutamente necesario haber trabajado anteriormente con Laravel, dado que vamos a explicar desde cero el setup del entorno de trabajo y se explicarán también las bases del framework necesarias para el desarrollo de la API: sistema de routing, controladores, modelos, etc.

Sin embargo, debe quedar claro que no es un curso de Laravel desde cero, en el que se vean todas las características del framework. Nos vamos a centrar exclusivamente en aquellas partes que se necesita utilizar para el desarrollo de una API RESTful con Laravel 5.5. Asimismo, los conceptos iniciales y básicos del framework se explicarán brevemente, sin entrar tanto en detalle.

En resumen, un desarrollador con conocimientos en cualquier otro framework PHP será capaz de asimilar perfectamente el curso, y por supuesto cualquier persona que conozca Laravel previamente. En el caso de no haber trabajado con ningún framework PHP anteriormente, se recomienda tener bastante experiencia con PHP y quizás aclarar conceptos y prácticas mediante el Curso de Laravel desde cero que hemos impartido anteriormente en EscuelaIT.

Clases y contenidos

Introducción y Preparación del Proyecto

Presentación del curso y las API RESTful en Laravel Gratis
  • Que son las API REST, o API RESTful. Qué son recursos y qué qué tipo de operaciones se realizan sobre los recursos mediante las API RESTful.
  • Algunos detalles sobre los elementos de las aplicaciones Laravel que se necesitarán construir para crear un API RESFTful con este framework.
Crear un proyecto en Laravel
  • Cómo crear un proyecto en Laravel.
  • Qué requisitos se necesitan y qué pasos se realizan para iniciar nuestro proyecto de API RESTful.
  • Homestead.
  • Cómo usar un servidor web en local, levantado por el propio PHP, para usar Laravel.
Configurar la base de datos
  • Cómo configurar una base de datos en local, con SQLite, para poder trabajar de una manera cómoda y sin necesidad de instalar un sistema gestor de base de datos.
  • Migraciones de un proyecto, cómo se ejecutan y la necesidad de tener una base de datos para poder realizar el proceso de creación de la estructura de la base de datos.
  • Qué hay que hacer en la aplicación Laravel para configurar la base de datos creada.
Otras alternativas para disponer de Laravel en local para desarrollo
  • Qué otras alternativas disponemos para instalar Laravel en local, incluso para instalar PHP de una manera cómoda.
  • Motivos por los que podemos usar una u otra, dependiendo de si tenemos problemas específicos o necesidades concretas.
Repaso a la estructura de aplicación Laravel 5.5
  • Carpetas y archivos que forman parte de un proyecto de Laravel.
  • Middlewares, controladores, modelos, rutas, archivos de configuración, kernel, etc.
  • Cómo en un proyecto pueden convivir partes de una web tradicional, a la que el servidor responderá con HTML y partes de lo que será nuestra API.
Creación de nuestro primer modelo y archivos asociados
  • Comenzamos a incorporar código al proyecto para ir construyendo el API del proyecto del curso.
  • Estructura del modelo de datos que se va a utilizar para el proyecto, analizando las diversas partes, sus recursos.
Implementar el esqueleto de los demás recursos del API
  • Implementación de los recursos restantes para el proyecto del API RESTful.
Creación de la tabla pivote
  • Cómo se realiza una migración para crear la tabla pivote, necesaria para una relación de muchos a muchos.
Ejecutar migraciones
  • Cómo se ejecutan las migraciones, una vez realizadas todas las necesarias para la implementación de las tablas para nuestro modelo de datos.
  • Trucos que resuelven problemas habituales.
Preguntas finales y resumen del contenido del curso
  • Resumen de todo el contenido que se impartirá en el resto del curso de creación de API RESTful con Laravel.

Implementación de los Componentes Restantes de la API RESTful

Creación de modelos heredando de otro modelo

Creamos los modelos de Seller y Buyer con la base del modelo User. Son modelos que no tienen todos los componentes que se necesitan para modelos normales y que toman muchas cosas simplemente extendiendo de un modelo padre.

Propiedades para la configuración de modelos

Se explican algunas de las propiedades que Laravel ofrece para configurar los modelos de nuestros recursos. Se implementan algunas modificaciones en nuestros modelos para adaptarlos a nuestra estructura de datos de aplicación.

Creación de columnas para las tablas mediante migraciones Laravel

Se explica cómo configurar las migraciones, creando todas las columnas de las tablas para nuestro modelo de datos. Las migraciones ya estaban realizadas en la clase pasada, pero estaban vacías prácticamente de código. Ahora creamos los campos de las tablas usando código en las migraciones.

Implementación de factories para los recursos

Creación del código para generar los datos para los modelos, datos de prueba que se puedan usar para poblar la base de datos en la etapa de desarrollo. Esto se hace usando la librería Faker, integrada en el propio Laravel. Se muestra el proceso detallado de implementación de las factory para la creación de los datos de prueba.

Crear las relaciones entre recursos, mediante los modelos Laravel

En este vídeo se muestra cómo especificar las relaciones entre las tablas del modelo de datos, lo que se hace sobre los modelos de Laravel. Es un paso necesario para que desde unos modelos podamos acceder a los datos relacionados, que dependen de otros modelos.

Invocar las factory desde DatabaseSeeder

Vamos a invocar todas las factories generadas anteriormente, con lo que se crearán los datos en las tablas, para tener contenido con el que ir desarrollando en el futuro. En este paso usamos un archivo específico, databaseSeeder.php, para implementar la alimentación de datos de pruebas. Luego, el paso de rellenar los datos, ejecutando el archivo databaseSeeder.php, se hace desde Laravel Artisan.

Consejos para el versionado de las API

En este bloque se respondió una pregunta que trataba sobre el versionado de las API: qué hacer cuando se tiene que modificar el API, creando nuevas versiones que tengan funcionamientos diferentes y cómo lidiar con clientes que consuman diferentes versiones del API.

Laravel Tinker
  • Laravel Tinker, qué es, para qué sirve, cómo usarlo a través de la línea de comandos para ejecutar directamente código del framework sin tener que crear rutas o controladores para conseguirlo.
Conclusión de la clase y preguntas finales

Se acaba la clase repasando un par de preguntas finales, para resolver dudas básicamente, sin aportar nuevo contenido a lo que se ha visto ya en el resto de la clase.

Generalizando el Código y Mejorando el Funcionamiento de la API

Generalizando el Código y Mejorando el Funcionamiento de la API

En esta clase implementarán algunas funciones sobre los nuevos recursos del API REST. Se refactorizará el código anterior para centralizar la construcción de las respuestas en un mismo componente reutilizable (trait). Además se explicará el el manejo de los diferentes errores y excepciones.

Comenzando Operaciones Complejas de la API RESTful

Comenzando Operaciones Complejas de la API RESTful

Durante esta clase se implementarán las operaciones requeridas, junto con sus respectivas rutas, para nuevos recursos fundamentales de la API RESTful, junto con algunas operaciones complejas, las cuales incluyen más de un recurso por operación.

Finalizando las Operaciones Complejas

Objetivos en la clase 5

Comienza la clase 5 con un repaso de los objetivos que se plantean en esta ocasión. Básicamente seguir trabajando una serie de controladores complejos para llegar a crear productos y transacciones en este sistema de API para comercio online.

Controlador complejo Category-Transaction

Desarrollo de CategoryTransactionController. Se encarga de ofrecer el listado de transacciones en una categoría.

Controlador complejo Category-Buyer

Muestra los compradores de una categoría, quienes han comprado en una categoría dada. En este caso se hace una transformación severa de la colección, ya que lo que se obtiene en principio tiene muchas relaciones en la misma consulta y tenemos que devolver solamente compradores

Otros de controladores complejos asociados a categorías
  • CategoryProductController.
  • CategorySellerController.
Cómo eliminar los datos pertenecientes a una tabla pivote
  • Detalles de la tabla pivote, ya que no deberíamos devolver esos detalles en la respuesta.
  • Cómo enviar parámetros adicionales a un controlador para indicarle cómo ordenar los datos de la respuesta.
Controladores complejos que dependen de Seller
  • SellerTransactionController.
  • SellerCategoryController.
Controlador complejo Seller-Buyer

SellerBuyerController.

Operaciones con productos asociados a vendedor

En este vídeo se realiza el controlador SellerProductController, el cual es muy interesante por tener diversas operaciones que nos restaban por hacer en nuestro API, como crear productos asociados a un comprador, editarlo, eliminarlo y por supuesto mostrarlo.

Almacenar nuevos productos asociados a un vendedor

Método store() del controlador SellerProductController.

Actualizaciones y borrados sobre productos de un vendedor
  • Operaciones dentro de SellerProductController.
    • método update()
    • método destroy().
Resto de operaciones del API
  • Operaciones adicionales de nuestro API.
  • Ejemplo en el método destroy() de ProductCategoryController .
Operación de creación de transacciones

Última operación en la que vamos a realizar las transacciones en si. En este controlador necesitamos usar tres recursos (es el primero que hacemos que requiere el uso de tres recursos y el único que necesitaremos en nuestro proyecto).

Agregando Nuevas Características a la API y Transformando las Respuestas para Aumentar la Compatibilidad

Agregando Nuevas Características a la API y Transformando las Respuestas para Aumentar la Compatibilidad

Características de ayuda para el manejo de productos en la API, junto con la implementación de un sistema de transformación de las respuestas, que permitirá eliminar la dependencia entre la estructura de las respuestas y la base de datos.

Implementando HATEOAS en la API

Implementando HATEOAS en la API

HATEOAS, una pieza fundamental para cualquier API que se haga llamar RESTful.

Implementando la capa de seguridad usando OAuth2

Implementando la capa de seguridad usando OAuth2

Laravel Passport para implementar todo un sistema de seguridad y control de acceso a la API por medio de OAuth2.

Usando los diferentes flujos de acceso de OAuth2 y soportando CORS en la API

Usando los diferentes flujos de acceso de OAuth2 y soportando CORS en la API
  • Flujos de acceso que nos permite la API por medio de OAuth2, para proteger el acceso a la API en diferentes niveles.
  • Acceso a CORS, para facilitar el consumo de la API desde navegadores.

Valoraciones

Elvis

Daniel Ignacio Fernández

Javier Gutierrez

Juan Esteban Quiroz

Excelente Profesor

David Alonso

Excelente curso y profesor.

Matias Potes

Me fue de mucha utilidad, recomiendo al profesor

Jorge Ferreyra

Alvaro Landa Hidalgo

Buen profesor y buenas explicaciones

Miguel Maluenda

Enrique Arrabal Almagro

Muy bien explicado, detalles que normalmente en tutoriales pasan por alto los va comentando. Viniendo de Symfony es muy buen curso para ponerte al día rápido de Laravel

Jose Luis Pilo

Diego Oliva

Hector Enrique Rojas Cano

Contenido muy completo, la pedagogía y claridad con la que explica Juan es excelente. 100% recomendado.

Cursos que también te pueden interesar

¿Conoces nuestra tarifa plana?

Toda la formación de EscuelaIT, con más de 200 cursos completos para aprender las más variadas tecnologías de programación, diseño y marketing online. Todo! con tu suscripción.

Suscríbete