Hero

Probando APIs REST con PHPStorm

Marzo 25, 2022

esosa
APIs
REST
PHPStorm

A todos nos ha pasado, de pronto necesitas probar una API tipo REST, estás usando PHPStorm como tu IDE y como si fuera poco necesitas incluir dichas pruebas como parte de tu proyecto!

Si estuviste poniendo atención al título de este artículo entonces ya te imaginarás lo que voy a decir… PHPStorm tiene una herramienta incluida con justas las características que estás buscando, te presento al..

Cliente HTTP de PHPStorm

Para usarlo todo lo que necesitas es crear un archivo tipo HTTP: File -> New-> HTTP Request, puede tener extensión .http o *.rest

restAPIphpStorm 01

Dale un nombre

restAPIphpStorm 02

Lo siguiente que vas a notar es esta ventana.

restAPIphpStorm 03

Comencemos con un ejemplo básico de autenticación, hoy en día es muy común ejemplificar los llamados a una API REST usando curl como por ejemplo:

curl -X POST "https://degreed.com/oauth/token" \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -d 'grant_type=client_credentials&client_id=<id>&client_secret=<secret>&scope=<scopes>'

Hagamos uso de una una útil característica del Cliente HTTP que nos ahorrará un montón de tiempo, para esto voy a copiar el llamado de curl y lo pegaré en la primer línea.

restAPIphpStorm 04

Ha transformado el comando curl en una petición HTTP con el formato correcto de manera automática, ahora todo lo que hay que hacer es reemplazar los valores que se encuentran entre <> con los valores correctos y estaremos listos para ejecutar la petición con tan solo hacer click en Run all requests in file

restAPIphpStorm 05

En la parte superior de la ventana se presenta información de la respuesta petición HTTP, también muestra la respuesta (en nuestro caso un objeto llave->valor en formato JSON) y nos indica el lugar donde se guardó una copia de esta respuesta para futura revisión.

Pero qué pasa si queremos usar parte de la respuesta de esta nuestra primer llamada en alguna subsecuente llamada? Veamos el siguiente ejemplo el cual necesita el access_token regresado en la primer llamada.

curl "https://api.degreed.com/api/v2/content"
  -H "Authorization: Bearer <access_token>"

Después de copiar + pegar en nuestro editor podemos ver que tenemos que reemplazar <access_token> con el valor correcto.

restAPIphpStorm 06

Y para esto usaremos las {{variables}} !

restAPIphpStorm 07

El cliente HTTP hace uso de 2 principales objetos: el client y el response, en client es donde vamos a guardar variables, en nuestro ejemplo estamos asignando en la variable access_token el valor access_token del objeto response.

Ahora podemos usar {{access_token}} en las subsecuentes llamadas donde ocupemos el dato, aquí la versión modificada del llamado tipo GET haciendo uso de nuestra nueva variable.

restAPIphpStorm 08

Así se ven ahora nuestras 2 llamadas.

restAPIphpStorm 09

Y qué pasa si quisieramos mantener en un archivo env separado alguna de la información que se usa al hacer los llamados? Fácil! Solo ház click en Add environment file.

restAPIphpStorm 10

Seleccionaremos Private para este ejemplo

restAPIphpStorm 11

Definimos algunos valores bajo (en este caso) la llave env, podemos definir uno o más ambientes, cada uno con un diferente juego de valores.

restAPIphpStorm 12

Ahora actualizaremos nuestra primer llamada

restAPIphpStorm 13

Y si ahora ejecutamos Run all requests in file vamos a ver se presenta un recuadro que nos permite seleccionar cuál set contiene los valores que usaremos para esta llamada.

restAPIphpStorm 14

Espero que este artículo te haya dado un vistazo a lo fácil que es el probar interfacez de API REST con el Cliente HTTP de PHPStorm.

Recibe consejos y oportunidades de trabajo 100% remotas y en dólares de weKnow Inc.