©2024 Escuela Tecnologías de la Información S.L. Todos los derechos reservados.
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
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
Objetivos del curso
Por qué debes aprender Desarrollo de API RESTful con Laravel
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
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Implementación de los recursos restantes para el proyecto del API RESTful.
- Cómo se realiza una migración para crear la tabla pivote, necesaria para una relación de muchos a muchos.
- 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.
- 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
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.
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.
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.
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.
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.
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.
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, 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.
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
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
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
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.
Desarrollo de CategoryTransactionController. Se encarga de ofrecer el listado de transacciones en una categoría.
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
- CategoryProductController.
- CategorySellerController.
- 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.
- SellerTransactionController.
- SellerCategoryController.
SellerBuyerController.
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.
Método store() del controlador SellerProductController.
- Operaciones dentro de SellerProductController.
- método update()
- método destroy().
- Operaciones adicionales de nuestro API.
- Ejemplo en el método destroy() de ProductCategoryController .
Ú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
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
HATEOAS, una pieza fundamental para cualquier API que se haga llamar RESTful.
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
- 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.
¿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.