Crear APIs es una tendencia que está aumentando cada vez más. Desarrollar nuestro servidor para disponibilizar la información y recursos de nuestro sistema para varios entornos nos ayuda a dejar nuestros proyectos aún más organizados. Sin embargo, para desarrollar una API, es necesario probar el código creado. En algunas situaciones, esto puede ser un problema.
Cuando estamos listando datos, podemos acceder a nuestra API directamente desde el navegador, del lado del cliente. Pero, si necesitamos probar la creación de un nuevo registro a través del método POST o la eliminación de un dato a través del método DELETE, podemos notar algunas dificultades. ¿Cómo podemos hacer estas pruebas?
¿Ya has creado una etiqueta HTML de formulario para probar el envío de datos a un servidor? Esto puede ser bastante tedioso y no muy productivo, ¿no es así? Para resolver estas cuestiones, tenemos a nuestra disposición herramientas que nos ayudan en las pruebas de APIs REST. Una de esas herramientas es Insomnia. Es muy simple, pero muy poderoso.
En este artículo realizaremos su instalación y veremos cómo utilizarlo para probar una API, junto con recursos adicionales.
Instalación
El sitio oficial de Insomnia es insomnia.rest.
Descargaremos la versión “Insomnia Core”, enfocada en las pruebas de APIs. Haremos uso de la página de descargas.
Mac
Para instalar Insomnia en Mac, podemos usar Homebrew:
brew cask install insomnia
Linux
Podemos realizar la instalación en Linux a través de APT:
sudo apt-get update
sudo apt-get install insomnia
Windows
Podemos usar Chocolatey para instalar Insomnia en Windows. Para ello, usamos el siguiente comando:
choco install insomnia-rest-api-client
Si deseas realizar la instalación de manera convencional, podrás seleccionar el archivo .exe y hacer su descarga. Al ejecutarlo, Insomnia se instalará y se iniciará en la computadora.
Probando una API
Vamos a probar una API de ciudades, escrita en JavaScript, que estará disponible en nuestro servidor local (localhost), en el puerto 3000. Vamos a probar las rutas de CRUD de estas ciudades.
Listando las Ciudades
Para realizar nuestra primera solicitud, vamos a presionar el botón con un símbolo de más (+) y luego hacer clic en “New Request”
Necesitamos dar un nombre a nuestra solicitud. Podemos informar el nombre que deseemos. En nuestro caso, la llamaremos “API LIST”:
El panel a nuestra derecha se abrirá. En él, podremos informar la URL de nuestra API en la parte superior, al lado del método, que en este caso es “GET”. La URL de nuestra API para listar las ciudades es http://localhost:3000/cities:
Después de informar la dirección de la API, solo hay que hacer clic en “Send”. A continuación, el panel más a la derecha nos devolverá los datos:
¡Excelente! Nuestros datos fueron devueltos correctamente. Tal vez pensemos: “Esto es bueno, pero podría tener el mismo resultado accediendo a la API a través del navegador.” Eso es verdad. Sin embargo, usando Insomnia podemos mantener nuestras pruebas bien organizadas y aún más eficientes. Además, al analizar el siguiente método, veremos algunas otras ventajas de usar Insomnia que son simplemente indispensables.
Creando una Ciudad
El siguiente método HTTP que vamos a probar es el POST. Para ello, repetiremos el proceso de hacer clic en el botón de nueva solicitud y luego informaremos un nombre para ella. En este caso, le daremos el nombre “API CREATE”. Además, en esa misma ventana cambiamos el método a “POST” y elegiremos como cuerpo de nuestra solicitud la opción “Form URL Encoded”.
La URL será la misma, solo cambiará el método de la solicitud. Además, tendremos la opción de informar los campos que queremos enviar a la API. Como elegimos la opción de campos de formulario, esta parte involucrará datos con un identificador y un valor:
Al hacer clic en “Send”, veremos el siguiente resultado en el panel a la derecha:
Nuestros datos fueron insertados, ¡muy bien! Imagina hacer esta prueba creando un formulario HTML. Sería mucho más trabajo. Con Insomnia se volvió mucho más simple, ¿no es así?
Editando una ciudad
El siguiente método que vamos a probar es el PUT. Se usa para actualizar toda la información de una ciudad específica. Otra opción sería el método PATCH, que se utiliza para actualizar solo parte del registro, y no todo él.
Para utilizar el método PUT, repetiremos el proceso seguido anteriormente con el POST, cambiando solo el nombre de la solicitud a “API UPDATE”. También vamos a usar el cuerpo de formulario en esta solicitud:
La URL contendrá el ID de la ciudad que queremos modificar y también podremos enviar los datos para esta actualización:
Veremos el siguiente resultado al enviar la solicitud:
Ahora nuestros datos fueron actualizados.
Eliminando una Ciudad
El último método que vamos a probar es el método DELETE. Informaremos el nombre “API DELETE” para esta solicitud:
Esta solicitud no tendrá cuerpo. Solo informaremos el ID de la ciudad que queremos eliminar. En el caso de este ejemplo, eliminaremos el registro con ID 2, que se informará en la URL:
Después de enviar la solicitud, vemos el siguiente resultado:
Vemos que esta ruta también está funcionando y percibimos lo simple que es realizar la prueba de nuestra API con Insomnia. Sin embargo, hay algunas funcionalidades adicionales que pueden facilitar aún más nuestro trabajo.
Algunas mejoras en nuestras pruebas
Variables de Entorno
Usamos el servidor http://localhost:3000 como base para nuestras pruebas. Sin embargo, imagina que tuviéramos que cambiar la dirección de este servidor para realizar nuevas pruebas. O si tuviéramos que probar nuestra API en producción. En este caso, necesitaríamos cambiar la dirección de este servidor en todas las solicitudes que ya hemos creado. Esto podría generar un trabajo bastante repetitivo y cansativo, ¿no es así?
Para facilitar este proceso, Insomnia cuenta con variables de entorno, que pueden ser reutilizadas. Para acceder a ellas, solo hay que hacer clic en “No Environment” > “Manage Environments” debajo del menú principal de Insomnia:
Se abrirá una nueva ventana. En ella podemos ver un área para agregar un código JSON. En él podemos definir nuestras variables de entorno. Por ejemplo, definiremos que nuestra URL base será el localhost. Usaremos el siguiente código para esto:
{
"hcode_url": "http://localhost:3000"
}
El siguiente paso es sustituir la cadena http://localhost:3000 por la variable hcode_url en nuestras solicitudes. Para ello, solo hay que escribir el nombre de la variable y el propio Insomnia te sugerirá usarla en las solicitudes:
En la imagen anterior hemos agregado la variable a la ruta GET, pero podemos hacerlo en todas las solicitudes. Ahora, si necesitamos cambiar la base de nuestra API, solo hay que cambiar esta información en un solo lugar y ese cambio se reflejará en todas las solicitudes.
Carpetas
Otro recurso de Insomnia son las carpetas. Ellas permiten que agrupemos nuestras solicitudes en “namespaces”, evitando que nuestras pruebas se desorganizaran a medida que aumentan.
Para crear una carpeta solo hay que hacer clic en el botón con el símbolo de más (+) y luego seleccionar “New Folder”:
Le daremos el nombre “DEV” a esta carpeta, ya que las solicitudes que hemos creado están enfocadas en el desarrollo:
Ahora, solo necesitamos arrastrar las solicitudes que hemos creado a esta carpeta:
Ahora sí, mucho más organizado. De esta forma, si necesitamos crear solicitudes específicas para producción o para otros proyectos, no entrarán en conflicto con las solicitudes de desarrollo.
En este artículo tuvimos una introducción a Insomnia. Vimos lo simple que es instalarlo y usarlo, pero también cómo nos brinda varios recursos para facilitar nuestras pruebas de servidores basados en REST. Esperamos que hayas disfrutado de este artículo y que puedas usar Insomnia en el desarrollo de tus aplicaciones web.
Aprovechando el momento, te invitamos a conocer los cursos de Hcode. Si deseas destacarte en el mundo digital, mejorar tus habilidades de programación, desarrollo web o crear tus propias aplicaciones y sitios, nuestros cursos son la elección perfecta. Accede a: www.hcode.com.br/cursos y descubre cómo impulsar tu carrera con el conocimiento y la experiencia que nuestros instructores calificados pueden ofrecer. ¡No pierdas la oportunidad de convertirte en un especialista con Hcode!
Nos vemos en el próximo artículo :)