
Conoce más de cerca al instructor, su experiencia y conocimientos y las motivaciones para la construcción de este curso.
En esta clase te hablo un poco sobre las APIs RESTful y cómo tomar el curso y aprovechar los contenidos, según tu nivel de desterza en este tema.
XAMPP es un proyecto multi-plataforma que permite administrar fácilmente diferentes servicios como Apache, MySQL, PHP, entre otros.
Durante esta clase los instalaremos, principalmente para usar PHP en el sistema.
Composer permite instalar y administrar las dependencias de múltiples proyectos PHP, lo cual incluye Laravel.
Durante esta clase verás cómo a partir de la instalación de PHP de la clase anterior se puede instalar composer fácilmente.
Virtual Box es un proyecto de Oracle muy popular para la fácil virtualización del hardware, permitiendo la creación de máquinas virtuales de cualquier tipo al interior de tu propio sistema.
Vagrant es un proyecto que te ayudará a crear máquinas virtuales completamente configuradas y preparadas para diferentes tareas en Virtual Box muy fácilmente.
Sublime Text 3 es la versión reciente de uno de los editores de código más populares. Se usa para el desarrollo en múltiples lenguajes de programación y cuenta con una comunidad muy activa que brinda infinidad de plugins o paquetes adicionales para mejorar muchísimo más sus funcionalidades.
Por medio de Git Shell podrás ejecutar múltiples comandos avanzados que normalmente no está disponibles en sistemas Windows. Es muy recomendable instalar esta herramienta para seguir el curso sin problemas y acceder a una gran variedad de comandos que no son disponibles de forma nativa en WIndows.
Si usas otro sistema operativo, puedes omitir este paso, sin embargo, también te puede ser de gran ayuda.
Node es un sistema principalmente útil para tareas relacionadas con el frontend. Principalmente lo instalaremos, para tener acceso a NPM el cual nos facilita la gestión de dependencias para el frontend. Es como composer, pero en lugar de PHP, es para CSS y JavaScript.
Postman es una herramienta muy popular en el mundo de las APIs. Por medio de este programa, podremos realizar peticiones de todo tipo a nuestra API para comprobar todas las funcionalidades clase a clase.
Durante esta clase aprenderás a obtener la estructura básica inicial de cualquier proyecto Laravel, por medio de composer.
Homestead es un box de vagrant que nos permitirá construir fácilmente una completa máquina virtual diseñada para proyectos de Laravel principalmente.
Homestead es un proyecto propio de la organización Laravel y se mantiene muy actualizado y con grandes aportes de la comunidad.
Toma algunas notas de un paso adicional a seguir si estás utilizando Laravel 6
Resolvamos algunas posibles confusiones con el uso de Laravel Vite sobre Laravel Mix.
Por medio de un archivo llamado Homestead.yaml, al interior de nuestro proyecto, podrás configurar fácilmente las características principales de Homestead, como dirección IP, nombre de la base de datos, ubicación del proyecto, cantidad de memoria y de CPUs, entre otros.
Para poder usar el dominio virtual asignado a la máquina virtual de Homestead, es necesario indicarle a nuestro sistema, dónde enviar las peticiones una vez que intentemos acceder al dominio elegido (apirestful.dev)
Durante esta clase conocerás los principales comandos necesarios para gestionar tu máquina virtual con Vagrant.
Comandos para la creación, destrucción, inicio y apagado, junto con las conexión a través de SSH a la misma.
Se recomienda el uso del Git shell, especialmente en Windows, para la conexión SSH.
Averigua el modo en el que se puede usar Composer para mantener las dependencias del proyecto actualizadas, sin correr el riesgo de introducir cambios que dañen el correcto funcionamiento del proyecto.
El package control, es el paso inicial que nos abre las puertas a un enorme mundo de paquetes y plugins para sublime. Por medio de este, se pueden instalar todos los paquetes disponibles para Sublime Text.
Aprende cómo crear y gestionar tus proyectos con Sublime Text 3, para poder mantener tus espacio de desarrollo ordenado y acceder fácilmente a tu código.
SublimeCodeIntel es una herramienta propia para Sublime Text que facilita muchísimo la navegación a través de la definición de diferentes clases, métodos y variables tanto de nuestro código como del código interno de Laravel u otros paquetes.
Al instalar SideBarEnhencement podrás acceder a funcionalidades avanzadas en la barra lateral, tales como búsqueda avanzada, fácil creación, eliminación y gestión de archivos ey muchas más.
Por medio de SublimeLinter para PHP, podrás detectar fácilmente errores en el código, ayudando así a un proceso de desarrollo más confiable y rápido.
Con PHPCompanion, obtienes acceso a múltiples funcionalidades entre las cuales, se destaca la posibilidad de automáticamente resolver la ubicación de las definiciones que se tienen el las sentencias "use" de tu proyecto. Evitando así tener que acceder a ellas manualmente o tener que memorizarlas.
Vamos uno a uno con los diferentes modelos/entidades/recursos que conformarán la API RESTful, sus atributos nombres, características y relaciones entre ellos.
Los End-Points son todas las posibles rutas o URLs que la API va a proporcionar para brindar acceso a diferentes opciones, recursos y utilidades.
Durante esta clase verás la lista completa de todas ellas, cómo funcionan, sus nombres, acciones, métodos/verbos y algunos detalles más.
Durante esta clase podrás familiarizarte con los componentes fundamentales de Laravel, la ubicación de los elementos más elementales como modelos, vistas y controladores, entre muchas más.
PHP Artisan, es uno de los atractivos de Laravel. Permite generar código, junto con la interacción directa con la aplicación a partir de comandos simples de consola.
Durante esta clase podrás ver cómo se accede a la lista de comandos de PHP Artisan, cómo obtener ayuda específica para un comando cualquiera y mucho más.
Las variables de entorno, son valores que normalmente deberían cambiar entre un entorno y otro, por ejemplo, el acceso a la base de datos seguramente es diferente en tu equipo local que en tu servidor de producción.
En esta clase verás como funcionan estas variables, dónde se encuentran y cómo se usan desde los diferentes archivos de configuración de Laravel.
Durante esta clase verás los cambios principales que ha sufrido el sistema de rutas en las versiones más recientes de Laravel y cómo ahora puedes separar correctamente tu rutas según el tipo de aplicación que estés desarrollando.
Estamos a punto de comenzar con el código y es muy posible que en caminos surjan errores.
Descubre una buena forma de resolver errores comunes y tener una buena guía del código original del curso.
Durante esta clase verás cómo generar la estructura inicial de los modelos del sistema, junto con sus migraciones por medio del uso de comandos de php artisan.
Recuerda que el orden de las migraciones es muy importante, así que debes prestar atención al orden en el que se crea cada modelo con sus respectivas migraciones.
Como en la clase anterior, también es posible crear la estructura inicial de los controladores por medio de comandos de php artisan.
Durante esta clase verás de modo especial la creación de controladores de tipo recurso que permiten implementar fácilmente operaciones CRUD sobre los recursos.
Así como sucede con los controladores de recurso, también existen rutas de tipo de recurso. Como es de esperarse, estas rutas facilitan la conexión de una URL y un recurso dados con una acción específica de un controlador.
De modo especial, podrás ver cómo ciertas rutas sólo hacen uso de un pequeño conjunto de métodos y no de todos ellos.
Durante esta clase agregarás las propiedades del modelo Category, indicando cuales de los atributos de este modelo pueden ser asignados de manera masiva $fillable.
Durante esta clase agregarás las propiedades del modelo Product, indicando cuales de los atributos de este modelo pueden ser asignados de manera masiva $fillable, junto con aquellos que deberían estar ocultos $hidden
Durante esta clase agregarás las propiedades para el modelo Transaction, indicando una vez más cuales de los atributos de este modelo pueden ser asignados de manera masiva $fillable.
Durante esta clase completarás la lista de atributos asignables ($fillable) acorde al diseño del sistema de la API, junto con los atributos que tendrán que ser ocultos $hidden.
En esta clase podrás construir las diferentes relaciones entre cada modelo. Podrás aprender relaciones de uno a muchos y de muchos a muchos, junto con la importancia de la clave foránea y en cual modelo debe ser asignada.
A partir de Laravel 5.4 se cambió el charset de la base de datos por utf8-mb4, haciéndolo más pesado de lo normal. Esto causa algunas inconsistencias con algunas versiones anteriores de MySQL y MariaDB para lo cual es necesario implementar varias soluciones.
En esta clase agregarás todos los atributos requeridos para la tabla users. Lo cual podrás hacer programáticamente por medio de una migración propia para esta tabla.
En esta clase agregarás los atributos que conforman tabla products, según el diseño de la API. Esto se puede hacer de modo programático con las migraciones creadas junto con el modelo.
En esta clase agregarás todos los atributos requeridos para la tabla transactions. Lo cual podrás hacer programáticamente por medio de una migración propia para esta tabla.
En esta clase agregarás los atributos que conforman tabla categories, según el diseño de la API. Esto se puede hacer de modo programático con las migraciones creadas junto con el modelo.
Para resolver la relación de muchos a mucho existente entre product y category, es necesario crear una tabla pivote.
Esto se puede hacer fácilmente por medio de una migración. Recuerda que el orden en el nombre de la migración es muy importante.
Por medio de los factories, es posible generar de forma automática instancias realistas de los modelos, a partir de datos falsos (generador con faker).
En este clase verás cómo construir el factory para generar instancias de usuarios.
Construye el factory para el modelo category y de ese modo poder generar instancias automáticamente.
Construye instancias de producto, a partir de datos falsos de modo automatizado, por medio del factory que implementarás en esta clase.
Crea transacciones de modo automatizado por medio de datos generados aleatoriamente y relacionándolos con otras instancias, automáticamente, desde el factory para transaction.
Una vez creados los factories, es necesario usarlos desde el DatabaseSeeder, para indicar el orden en el que estos se ejecutarán y la cantidad de instancias a crear para cada modelo.
Una vez creados los factories y el seeder que los use, es momento de ejecutar todo el proceso, por medio de un comando de php artisan.
En el camino, verás cómo resolver algunos errores que se cometieron en el proceso.
¿Necesitas construir una API RESTful para un proyecto, pero no sabes por dónde comenzar? No te preocupes, sé lo que se siente y por eso te voy a guiar por el proceso completo de construir una verdadera API RESTful usando Laravel.
¡Únete a los más de 3,000 estudiantes que ya están tomando el curso, construyendo su API RESTful con Laravel, y aprendiendo en cada clase!
Nota: Este curso puede ser tomado, y se recomienda hacerlo, usando la versión más reciente de Laravel. Además, incluye múltiples secciones que muestran cómo actualizar a las nuevas versiones de Laravel, en caso de que hayas preferido usar una versión anterior de Laravel.
La guía absoluta para la creación de una verdadera API RESTful con Laravel.
No encontrarás un curso como este en ninguna otra parte y mucho menos en español. Usarás Laravel para implementar una API RESTful completa y con todo lo que una verdadera API RESTful requiere.
A lo largo del curso, construirás una API RESTful con Laravel para sistema de mercado, donde los usuarios pueden comprar y vender diferentes productos con diferentes categorías y transacciones. Explorarás los diferentes tipos de relaciones (uno a muchos, muchos a muchos), junto con los paquetes principales para construir una API RESTful completa usando Laravel.
No esperes más para ser experto en desarrollo de APIs RESTful con Laravel. Únete ahora al curso y nos vemos en clases.
Recuerda: El curso es actualizado constantemente para usar las últimas versiones de Laravel. Así que siéntete libre de usar la versión que prefieras (especialmente versión más reciente de Laravel).
Laravel es el framework de PHP más popular, con millones de descargas y muchísimos proyectos de alto nivel implementados. Además, proporciona excelentes facilidades para desarrollar APIs RESTful y cualquier otro proyecto.
¿Qué es una API RESTful?
Una API RESTful se puede entender como un servicio web que funciona enteramente sobre HTTP. Una buena API RESTful sigue las prácticas dictadas por REST (REpresentationas State Transfer), permitiendo orientar el diseño a los recursos (usuarios, cursos, transacciones, productos, etc.) y proporcionando respuestas estandarizadas basados en los diferentes códigos de estado de HTTP.
¿Por qué Laravel?
Porque es un framework hecho por programadores y para programadores, expresivo, sencillo, intuitivo y potente., que además proporcionar características muy útiles para desarrollar una API RESTful. Millones de programadores de PHP lo usan y lo dominan cada vez más en todo el mundo; no te quedes atrás.
Durante el curso dominarás la estructura completa de Laravel, junto con las nuevas características incluidas en la versión más reciente, mientras que además, desarrollas una verdadera y completa API RESTful.
En el curso aprenderás esto sobre Laravel sobre APIs RESTful con Laravel:
Uso de PHP artisan de Laravel para la generación de código y componentes
Uso y creación de Middleware de Laravel
Controladores y rutas de tipo recurso de Laravel (ideales para las APIs RESTful)
Respuestas en formato JSON completamente compatibles con cualquier cliente
Validación de peticiones desde los controladores de Laravel
Manejo y control de todo tipo de excepciones y errores desde el handler de Laravel
Implementación de operaciones complejas que implican dos y hasta tres recursos/modelos
Inyección de dependencias y de modelos en Laravel
Generación de la estructura de la base de datos por medio de migraciones de Laravel
Inserción automática de datos aleatorios en la base de datos por medio de factories y seeders
Validación de usuarios, por medio de sesiones y de access_token ¡Sí ambos!
Uso de OAuth2 para la seguridad de la API RESTful, usando ¡Laravel Passport!
Paginación de resultados, usando colecciones de Laravel
Uso de parámetros de URL para ejecutar acciones (con un enfoque RESTful)
Ordenamiento de resultados por medio de parámetros de URL, siguiendo la filosofía REST
Filtrado de resultados usando parámetros de URL siguiendo el enfoque RESTful
Cacheo de respuestas, usando el sistema de cache de Laravel
Limitación de peticiones, usando el middleware de Laravel
Implementación de HATEOAS desde Laravel (una verdadera API RESTful debe usar HATEOAS)
Uso de PHP Fractal para retornar respuestas compatibles con cualquier tipo de cliente
Uso de cabeceras CORS en la API para permitir el uso desde JavaScript y navegadores web
Uso de Policies y Gates de Laravel para controlar el acceso de los usuarios a los recursos de la API RESTful
¡¡Muchísimo más!!
Puedes darle una mirada a la lista completa de contenidos más abajo, para obtener más detalles.
Crearás una API verdaderamente RESTful desde cero y paso a paso, siguiendo la arquitectura REST y la construcción adecuada de URLs para identificar acciones. Todo esto con la ayuda de Laravel.
Tendrás acceso de por vida a las clases bonus que se agregarán constantemente al curso (dale una mirada a la sección final para ver lo que viene).
Al finalizar este curso serás capaz de desarrollar tu propia y verdadera API RESTful con Laravel y PHP de una manera efectiva y con las mejores prácticas, explotando al máximo las facilidades proporcionadas por Laravel para la correcta y adecuada implementación de tus proyectos.
No esperes más para ser experto en desarrollo de APIs RESTful usando Laravel. Nos vemos en clases.