¿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
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:
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:
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
Clic en Fetch and Import, le decimos que lo queremos importar como Request Collection y tenemos:
Ahora podemos seleccionar la colección, antes de continuar vamos a ver que ha hecho por nosotros, todo a partir del swagger.
(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
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.
(2) operaciones creadas con la misma estructura que el swagger de definición
Si vemos lo que nos ofrece esta API en el navegador:
podemos observar que en Insomnia ha creado la misma estructura de operaciones.
Desde curl
Si tenemos un curl, por ejemplo:
curl -X 'GET' \
'https://api.spaceflightnewsapi.net/v3/articles' \
-H 'accept: application/json'
Podemos pegarlo directamente en la URL de una nueva petición:
Y obtendremos:
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
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:
Seleccionamos Response – Body Attribute y nos quedará así:
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
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.
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:
Podemos filtrar por los títulos de los artículos:
O el número de elementos:
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.