
Acá te comento qué es lo que vas a prender con detalle y lo que alcanzarás al finalizar el curso.
Antes de comenzar, déjame presentarme y mencionarte algunas cosas interesantes sobre mí y las experiencias que me han permitido construir esta guía definitiva para construir un Cliente HTTP con Laravel.
Acá te explico un poco sobre el entorno de desarrollo que recomiendo para seguir el curso. Sin embargo, eres libre de usar las herramientas con las que te sienta mejor para seguir el curso.
Acá te comparto detalles de cómo acceder al código fuente del Cliente HTTP construido durante el curso y cómo usarlo.
Antes de poder consumir cualquier servicio, necesitas conocerlo un poco. Determinar dónde enviar las peticiones (qué URL), cómo funciona y cómo accederlo.
La API que vas a consumir durante el curso es protegida. Así que tendrás que crear tus propios usuarios y clientes para acceder a su información. Acá te explico cómo.
¿Tienes dudas sobre OAuth2 y los access tokens? No te preocupes, en esta clase te explico las diferentes maneras de obtener un access token y sus características.
Usualmente, los tokens obtenidos desde una API suelen expirar al cabo de unas horas, así que es necesario refrescarlos o renovarlos para obtener uno nuevo.
Finalmente, para consumir un servicio cualquiera, es muy importante conocer la estructura de las respuestas que tal servicio retorna, pues de ese modo sabrás como acceder a la información que requieres e incluso determinar cuándo hay errores o no.
Es momento de obtener la estructura de Laravel, usando composer, para comenzar a implementar el Cliente HTTP
Guzzle es una librería de PHP muy popular y extendida para realizar peticiones HTTP de manera sencilla e intuitiva desde cualquier proyecto PHP, lo cual incluye Laravel y nuestro propio Cliente HTTP.
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.
Es momento de preparar el entorno para que el Cliente HTTP pueda funcionar sin problemas. En esta clase mostraré el uso de php artisan serve y SQLite. Sin embargo, puedes usar el entorno que desees.
Es momento de agregar los campos y componentes que necesitaremos almacenar en nuestra propia base de datos para poder consumir la API objetivo y automatizar fácilmente el proceso.
Algunos detalles de utilidad a tener en cuenta para llevar a cabo todo los pasos de esta sección con Laravel 6.
Por medio de las facilidades que proporciona Laravel, vamos a generar diferentes componentes que permitirán construir la interfaz gráfica del Cliente HTTP.
El modo en el que la vista de bienvenida que viene por defecto con Laravel es usada, es un tanto limitada en funcionalidad. Durante esta clase, vamos a mejorar eso, para poder enviar valores fácilmente a la vista principal de bienvenida, junto con algunos arreglos en la parte visual.
Es muy importante poder indicarle al usuario del Cliente HTTP, el resultado de diferentes operaciones (ya sea de éxito o de error). Durante esta clase, crearás dos componentes que se usarán en el layout del proyecto que permitirán mostrar adecuadamente los mensajes tanto de error como de éxito.
Vamos a agregar un pequeño botón en el formulario de inicio de sesión que permitirá, una vez sea implementado, iniciar sesión directamente con la API usada por el Cliente HTTP.
Durante esta clase vas a crear el componente principal del proyecto. Se trata del componente que podrá enviar peticiones HTTP de manera genérica usando Guzzle desde Laravel.
Este será ese componente altamente re-utilizable que tendrás para todos tus demás proyectos de clientes HTTP.
Una vez creado el componente genérico, es momento de crear el componente específico que sabrá con exactitud cómo hacer las peticiones del modo correcto a la API que está consumiendo el Cliente HTTP.
Haciendo uso de los archivos de configuración de Laravel. Vamos a indicar las configuraciones respectivas a la API que se consumirá. Tales como URL base, y credenciales de acceso.
Es momento de implementar uno por uno los métodos del servicio que caracteriza la API que se estará consumiendo. En este caso, se implementará el método encargado de resolver el modo de autenticar las peticiones y conseguir que sean autorizadas.
Es momento de implementar el método que se encargará de interpretar y obtener correctamente la estructura de las respuestas de la API, para que puedan ser usadas con facilidad a lo largo de todo el Cliente HTTP.
Aunque Guzzle dispara excepciones al momento de obtener respuestas de error, las cuales deben ser controladas de forma diferente, existen servicios que retornan errores de modo diferente, lo cual hace necesario implementar un método que permita identificar errores de forma adecuada y proceder según sea necesario.
Es muy importante mantener el orden y la modularidad del proyecto, especialmente para facilitar la re-utilización de componentes desde otros lugares del Cliente HTTP.
Durante esta clase, vamos a invertir algunos minutos para mejorar la modularidad y mantenibilidad del Cliente HTTP en Laravel, permitiéndonos ahorrar tiempo más adelante.
Es momento de enviar tu primera petición a la API. Y será para obtener la lista de productos.
Una vez obtenida la lista de productos de las API, es necesario utilizar esa información para mostrarla adecuadamente a los usuarios del Cliente HTTP.
Es momento de enviar una nueva petición. En esta ocasión será para obtener la lista de categorías.
Tal como se hizo con los productos, es momento de mostrar también la lista de categorías en la vista principal. Para ello agregaremos una columna adicional en la vista principal, para mostrarlas de forma acorde a los usuarios del Cliente HTTP con Laravel.
Es momento de obtener los detalles de un producto específico, a partir del identificador del mismo.
Es momento de mostrar los detalles obtenidos de un producto dado. Esto implica construir también una ruta que permita obtener el identificador del producto, y además agregaremos su título para ser un poco más realistas en el modo de funcionar del Cliente HTTP con Laravel.
Es momento de obtener los productos de una categoría. Para ello, es necesario recibir el identificador de la categoría que se desea utilizar.
Una vez obtenidos los productos de una categoría, mostrarlos será bastante similar a lo que se hizo para mostrar la lista completa de productos.
Es necesario agregar un nuevo servicio encargado de todo el proceso de obtener access tokens (OAuth2). Este servicio debe ser completamente independiente, puesto que el servicio que ya tenemos se autentica a partir de tokens ya obtenidos así que no podrá ser usado para este propósito.
Es momento de agregar la primera capacidad al nuevo servicio, capaz de obtener un token asociado al cliente. Básicamente, obtendrás un access token por medio del grant type llamado client_credentials de OAuth2.
Ahora que el Cliente HTTP es capaz de obtener access tokens automáticamente, al menos de manera inicial asociados al cliente (client_credentials); debes automatizar el proceso de obtención cada vez que se vaya a enviar una petición a la API.
Cada token obtenido tiene un tiempo de duración, así que no tiene sentido obtener uno nuevo cada vez que se envía una petición.
Durante esta clase agregarás la capacidad de determinar si un token sigue siendo válido o no para re-utilizarlo al máximo.
Durante esta clase, te encargarás de generar correctamente la URL hacia la cual se dirigirá al usuario al momento de solicitar su autorización para acceder a su información y permitirle iniciar sesión en el Cliente HTTP.
Una vez que el Cliente HTTP está en capacidad de generar la URL correctamente, es momento de asociarla con el botón de manera que el usuario sea correctamente dirigido al momento de presionar el botón.
Una vez que el usuario autoriza al Cliente HTTP, se obtiene un código de autorización.
Durante esta clase, agregarás la capacidad de obtener un access token válido a partir de un código obtenido. Básicamente, se usará el grant type llamado authorization_code de OAuth2.
Una vez que el Cliente HTTP está en capacidad de obtener un token asociado al usuario, después de obtener su autorización, podrás acceder a su información.
Durante esta clase, agregarás la capacidad de obtener la información de un usuario a partir de un token válido asociado.
Debido a que no existe una forma de controlar que un usuario existente o no use el botón para iniciar sesión, debes encargarte de determinar si se trata de un usuario nuevo o no, a partir de su identificador en la API, para crearlo o actualizar su información de acceso, según sea el caso.
Finalmente, una vez que el Cliente HTTP en Laravel, está en capacidad de identificar usuario de forma interna, a partir de las credenciales de acceso en la base de datos, es posible crear sesiones para los usuarios.
Se trata de una de las funciones más interesantes de un Cliente HTTP, pues se están creando sesiones a partir de un usuario cualquiera proveniente de la API consumida.
Tal como se puede obtener un token válido a partir de un código de autorización, también se puede obtener a partir de las credenciales del usuario (username y password). Esta forma de obtener un access token, corresponde al grant type llamado password.
Es momento de autenticar un usuario y crearle una sesión a partir del token obtenido con sus credenciales. Por supuesto, siempre utilizando algunos componentes anteriormente implementados.
Es importante controlar adecuadamente las fallas al intentar obtener un token con las credenciales del usuario, asegurándose de que solo se trate de casos en los que las credenciales hayan sido inválidas y no cualquier otro error.
¿Necesitas consumir un Servicio o API HTTP y te abruma pensar en OAuth2, access tokens, credenciales, grant types, sesiones de usuario y demás?
¡Yo te cubro! En este curso te muestro que todo se trata de peticiones HTTP, usando los valores y herramientas correctas para hacer todo mucho más sencillo.
Crea tu propio cliente HTTP con Laravel: Construye y diseña tu propio proyecto web con Laravel, para consumir servicios y APIs en línea.
Obtén datos de servicios o APIs HTTP (propios o de terceros) y muéstralos de forma agradable y correcta a los usuarios de tu proyecto.
Aprende paso a paso todo lo necesario para consumir cualquier servicio web o API en línea, con PHP desde un proyecto Laravel y usando Guzzle.
Al final del curso tendrás múltiples componentes que podrás reutilizar en tus proyectos para consumir cualquier servicio o API HTTP.
No esperes más e inscríbete :)
¿Por qué debes elegir este curso?
Porque te da una vista detallada, como en ningún otro curso, de cómo consumir un servicio o API HTTP usando Laravel y PHP.
Porque te da los componentes esenciales que podrás re-utilizar en tus demás proyectos al momento de consumir cualquier servicio o API HTTP
Porque, estarás en capacidad y con la confianza suficientes para usar cualquier servicio o API protegidos por OAuth2 o access tokens.
Porque no solo te muestro cómo crear tu Cliente HTTP con Laravel, sino que también te ayudo a identificar los diferentes desafíos de un Cliente HTTP y cómo resolverlos adecuadamente.
Porque simplemente, no existe otro curso que cubra todos estos temas.
¿De qué serás capaz al finalizar el curso?
En general, serás capaz de implementar un Cliente HTTP que te permita consumir cualquier servicio o API HTTP, ya sea propio o de terceros, usando PHP y Laravel. Además, tendrás una idea clara de cómo proceder al enfrentar nuevos proyectos y servicios a consumir, re-utilizando al máximo los componentes creados y aprendidos durante este curso.
Sabrás hacer uso de una librería de alto nivel como Guzzle, para enviar peticiones HTTP desde PHP con Laravel. Implementando componentes genéricos que permitan enviar peticiones de cualquier tipo a cualquier servicio HTTP con Guzzle.
Al final, habrás adquirido total confianza al enviar peticiones seguras y debidamente autorizadas a diferentes servicios HTTP, ya sea usando access tokens simples o incluso haciendo uso de todo un mecanismo de seguridad como lo es OAuth2. Todo, usando PHP y Laravel.
Durante el curso aprenderás esto:
Para el Cliente HTTP:
Cómo consumir un servicio o API a través de peticiones HTTP desde Laravel
Cómo autenticar y crear sesiones de usuario en tu Cliente HTTP con información de otros servicios
Cómo automatizar el proceso de obtención de un access token par autorizar las peticiones de tu Cliente HTTP
Las diferentes formas de obtener un access token desde un servicio que use OAuth2 y sus diferencias
Cómo manejar los tiempos de expiración de un token y evitar perder el acceso a la información
Cómo manejar errores de acceso al servicio o API HTTP consumido y cómo proceder
Cómo manejar y autenticar peticiones protegidas y asociadas a información de un usuario desde el Cliente HTTP
Uso de Guzzle desde Laravel, para enviar peticiones HTTP a cualquier servicio o API HTTP
Cómo configurar y preparar Laravel para realizar peticiones a un servicio o API HTTP
Uso de Bootstrap 4 para mostrar la información obtenida desde un servicio consumido
Manejo y control de excepciones y errores al consumir servicios externos con Laravel
Para cualquier proyecto Laravel:
Cómo instalar Laravel en tu entorno de desarrollo para proyectos profesionales
Configurar Laravel, en tu entorno para un desarrollo ágil y sencillo
Construcción de un proyecto profesional, modular y escalable con Laravel
Creación de rutas, vistas, plantillas, controladores y más con Laravel
Manejo de errores y excepciones internas del proyecto Laravel
Instalación de dependencias a un proyecto Laravel (caso de Guzzle)
Por supuesto, eso no es todo. Dale una mirada a la descripción completa de secciones y clases para obtener más detalles.
¡Y no termina ahí! Tendrás acceso de por vida a las clases actuales y a las que agregue más adelante al curso.
No esperes más para consumir esos servicios que necesitas y obtener la información que tus usuarios requieren.
Suscríbete y comienza a darle un nuevo enfoque a tus proyectos y mejóralos notablemente con información obtenida desde otros servicios (propios o de terceros).
¿Aún tienes dudas?
No te preocupes, acá te comparto algo más de información.
¿Por qué un Cliente HTTP con Laravel?
HTTP (HyperText Transfer Protocol) es un protocolo muy extendido y utilizado en Internet y cualquier lenguaje actual tiene mecanismo para conseguir realizar peticiones sobre HTTP de manera sencilla lo cual, por supuesto, incluye a PHP y por ende a Laravel (un framework para PHP).
Al ser HTTP un protocolo muy extendido actualmente, cualquier sistema o lenguaje actual será capaz de comunicarse correctamente con otros sistemas que usen este protocolo (sin importar el lenguaje), permitiendo el uso de datos e información de cualquier sistema en línea.
Tal información obtenida desde cualquier servicio HTTP, la podrás utilizar en tus proyectos para ofrecer cualquier tipo de información y servicio a los usuarios de tus sistemas. Eso te convierte en un cliente HTTP, pues estarás consumiendo un servicio o API HTTP cualquiera desde tu propio proyecto.
Ahora, Laravel, es el framework más popular para PHP. Con Laravel podrás desarrollar en muy poco tiempo aplicaciones PHP de alta complejidad, lo cual incluye un Cliente HTTP. Durante el curso, verás las enormes facilidades que Laravel brinda al momento de obtener y usar información de importancia para tus usuarios, además de facilitar mucho el proceso de integrar sistemas externos fácilmente.
Laravel posee innumerables características que lo diferencian de múltiples framework para PHP, las cuales permiten implementar de manera simple y en poco tiempo, tareas muy complejas.
Si requieres más información, no dudes en ponerte en contacto :)
Suscríbete ahora y nos vemos en clases :)