Insomnia: Open Source API Client

0
934

¿Cuántas veces has querido probar un API de forma rápida y sencilla? ¿Conoces Insomnia? Vamos a ver en este tutorial unos primeros pasos para descubrir está gran herramienta.

Para probarlo vamos a utilizar entre otros el swagger de ejemplo que hay en la propia página de swagger.

Índice de contenidos

  1. Principio
  2. Desde swagger
  3. Desde curl
  4. Anidando peticiones
  5. Filtrando resultados
  6. Conclusión

Principio

Probablemente no sea el mejor del mundo, ni el más completo, pero si que puedes anidar llamadas (login con otras request por ejemplo) de forma muy sencilla, en tres clics. Vamos a ver cómo estructurar nuestras peticiones en Insomnia.

Maneja una estructura en proyectos:
Estructura en Proyectos

Clic en Create new project le damos el nombre que queramos, por ejemplo Swagger Petstore y en el menú de la derecha Create se nos muestra las opciones disponibles:

Menú de creación dentro de un proyecto

Dentro de las opciones NEW se plantean dos alternativas, estamos diseñando una API (Design Document) o ya tenemos la definición (Request Collection).

Vamos a ver que podemos hacer con Insomnia cuando ya tenemos las peticiones de nuestro sistema o probar otro sistema y ver como se comporta.

Desde swagger

Partiendo de nuestro ejemplo de swagger (definición del API aquí), como tenemos la definición podemos cargarla directamente desde el menú IMPORT FROM, opción URL, pegamos la URL https://petstore.swagger.io/v2/swagger.json

Importar Colllection desde URL con una definición

Clic en Fetch and Import, le decimos que lo queremos importar como Request Collection y tenemos:

Nueva Colección importada

Ahora podemos seleccionar la colección, antes de continuar vamos a ver que ha hecho por nosotros, todo a partir del swagger.

Nuevo entorno impotado

(1) nuevo environment creado

Ha creado un nuevo entorno para que a partir de constantes podamos utilizar y cambiar rápidamente. Podemos ver y/o editar estas constantes en el menú Manage Environments

Edición de entornos

Por ejemplo podemos utilizar el botón Duplicate (situado arriba a la derecha), conseguiremos clonar este entorno, entre otros para definir un entorno de desarrollo, el cuál podremos añadirle el subdominio dev. por ejemplo, que no existe, pero nos hacemos una idea de la facilidad con la que conseguiremos cambiar el entorno de trabajo.

Entorno de desarrollo creado

(2) operaciones creadas con la misma estructura que el swagger de definición

Si vemos lo que nos ofrece esta API en el navegador:

Definición de la API desde el navegador

podemos observar que en Insomnia ha creado la misma estructura de operaciones.

Desde curl

Si tenemos un curl, por ejemplo:

Podemos pegarlo directamente en la URL de una nueva petición:

Pegamos el comando curl en la URL

Y obtendremos:

Resultado con la ejecución

Anidando peticiones

Vamos a ver otras dos Apis, una me devuelve la IP y la otra a partir de una IP me devuelve información. Vamos a anidar las peticiones tal que la segunda haga la llamada a la primera.

Configuramos la primera request. https://api.ipify.org?format=json

Recupera la IP

Ahora creamos la segunda request a partir de https://ipinfo.io/161.185.160.93/geo

Borramos la ip 161.185.160.93 y empezamos a escribir: respon… hasta que nos aparezca el siguiente menú contextual:

Menú contextual con la opción de response

Seleccionamos Response – Body Attribute y nos quedará así:

Nueva request anidada

Haciendo click sobre el nuevo campo accedemos a la configuración de la request previa que necesitamos y vamos a recuperar antes de ejecutar la actual. En filter con solo teclear $ se muestra la response de la request que queremos, para que podamos recuperar el campo concreto. Aquí sería $.ip

Configuración para la selección de los datos en la request previa

Podemos configurar cuando se debe lanzar esta petición; siempre, nunca, cuando no haya una respuesta previa, cuando digamos que caduca.

De tal forma que tenemos nuestra petición, que depende de otra y la hemos configurado muy rápido y de forma visual.

Resultado de la petición con otra anidada

Filtrando resultados

Si obtenemos una salida muy extensa y necesitamos filtrar, podemos hacerlo en la propia herramienta, en la parte inferior de la derecha (response) tenemos un pequeño input que ejerce de filtro, que al igual que antes con la opción de recuperar el campo de la response, nos permite seleccionar los elementos que nos interese, por ejemplo, de esta petición que nos devuelve un listado de artículos:

Respuesta sin filtrar

Podemos filtrar por los títulos de los artículos:

Filtro por títulos

O el número de elementos:

Elementos de una response

Conclusión

Insomnia, permite de forma rápida y visual consumir Apis y hace muy sencilla la tarea de anidar peticiones y poder centrarte en lo que quieras probar/analizar minimizando el tiempo de configuración en el cliente.

Dejar respuesta

Please enter your comment!
Please enter your name here