Probando APIS con Postman
La mayoría de las veces cuando probamos una API, es para determinar si la salida está bien estructurada, si es lo que necesitamos, comprobar el tiempo que tarda en recuperar los datos, verificar la respuesta en función de la solicitud, validación y revisión de datos, etc.
Actualmente existen diferentes aplicaciones para hacer este tipo pruebas, como: Insomnia[ref], Paw[ref] y por supuesto Postman[ref].
En esta story vamos a explicar un poco de Postman, cuales son sus ventajas y desventajas, así como algunos ejemplos básicos…
:: ¿Qué es Postman?
Postman es una aplicación para probar APIs, enviando solicitudes al servidor web y obtener una respuesta.
:: Instalando Postman
Podemos descargarlo desde la página oficial[ref] (mac, windows, linux).
Una vez que lo hemos descargado, tenemos 3 opciones:
- Darnos de alta mediante el formulario.
- Vincular una cuenta de google.
- Entrar de forma anónima.
Personalmente recomiendo registrarse (formulario o vinculación), ya que todas nuestras peticiones y colecciones (previamente guardadas), podremos acceder a ellas desde cualquier aplicación de Postman.
Una vez que te has entrado, lo primero que verás, será una pantalla como esta:
Donde:
- (1) —Principalmente: para crear un nuevo request, colección, ambiente, templates, ver la documentación de Postman.
- (2) — Para importar un request o colección.
- (3) — Para hacer pruebas de una o más peticiones simultáneamente, carga de datos, etc.
- (4) — Hacer búsquedas de peticiones, colecciones o APIs que hemos desarrollado.
- (5) — Tenemos tres tabs: History (ver todas las peticiones que hemos hecho), Collections (todas las colecciones que hemos creado, podemos agregar nuevas), APIs (cuando queremos generar nuestras propias APIs)
- (6) — Todas las tabs son las peticiones con las que estamos trabajando
- (7) — Para seleccionar el ambiente de las variables de entorno.
- (8) — Manejador de ambientes
- (9) — Nuestro espacio de trabajo, donde podemos agregar peticiones, verificar datos, etc.
:: Nuestra primera petición
En la parte que nos debemos enfocar es:
- (1) — Tipo de petición que podemos realizar (
GET, POST, PUT, PATCH, DELETE, COPY, HEAD, OPTIONS, LINK, UNLINK, PURGE, LOCK, UNLOCK, PROPFIND, VIEW
) - (2) — Es donde vamos a ingresar la solicitud (request), que básicamente es una
URL
- (3) — Pedir la petición
Ejemplo 1:
La siguiente API, sirve para obtener un recurso, y se usa por medio del HTTP GET
:
- (1) — El código de estatus que regresa el servidor, tiempo que tardó en ejecutarse y el peso del resultado regresado.
- (2) — La petición que retorna el servidor.
- (3) —Encabezados que regresa el servidor (da click en el tab para ver más detalle).
Ejemplo 2:
La siguiente API, sirve para guardar un recurso, y se usa por medio del HTTP POST
:
De acuerdo a la documentación[ref], debemos enviar por body
el siguiente JSON:
Donde:
- (1) — Cambiamos el
HTTP
porPOST
- (2) — Agregamos la petición
- (3) — En la tab
Body
con la opciónx-www.form-urlencoded
, agregamos clave/valor
Al darle click en send
nos va a retornar un resultado:
Ejemplo 3:
La siguiente API, sirve para actualizar un recurso, y se usa por medio del HTTP PUT
:
De acuerdo a la documentación[ref], debemos enviar por body
el siguiente JSON:
Donde:
- (1) — Cambiamos el
HTTP
porPUT
- (2) — Agregamos la petición
- (3) — En la tab
Body
con la opciónx-www.form-urlencoded
, agregamos clave/valor
Al darle click en send
nos va a retornar un resultado:
Ejemplo 4:
La siguiente API, sirve para elimina un recurso, y se usa por medio del HTTP DELETE
:
Importante: el recurso no se eliminará realmente en el servidor, pero se falsificará como si así fuera.
Donde:
- (1) — Cambiamos el
HTTP
porDELETE
- (2) — Agregamos la petición
- (3) — La petición que retorna el servidor
:: Variables de entorno
Postman, tiene la opción de configurar variables de entorno, para agregarlas dentro de la petición.
Ejemplo 1:
Imagina que estás probando las APIS de manera local, por lo que tu dominio quizás sea https://localhost:3000, y te avisan que hay un error en producción (obviamente el dominio es otro), no estaría genial indicarle a Postman, cual es mi ambiente y cuales son mis variables y mágicamente el servicio cambie?…bueno eso es posible!!
Lo primero que tenemos que hacer es darle click en Administrador de entornos (Managed Environments), que se encuentra en la parte superior derecha (Es el botón de engranaje)
Damos click en el botón Add
Escribimos el nombre del ambiente (vamos a poner test
) y llenamos variable/valor (son nuestras variables de entorno, en esta parte puedes crear tantas como sean necesarias)
Ejemplo: path_url
/ https://jsonplaceholder.typicode.com
Le damos click al botón de Add
y cerramos la ventana:
En la parte superior derecha hay un selector que dice No Environment
, le damos click, donde va a desplegar una lista, ahí debe estar el que hemos generado test
(es el ambiente que hemos creado) lo seleccionamos:
Ahora para usar las variables se usa el formato {{variable}}
, asignemos nuestra variable en la petición de la API:
Ahora, solo queda darle click de nuevo a Send…
Ejemplo animado:
:: Añadiendo colecciones
Podemos crear una colección de una o más peticiones API, con la finalidad de hacerlas reutilizables y tener un mayor control por aplicación o proyecto.
- (1) — En la parte superior izquierda, esta la tab
Collections
, le damos click. - (2) — Le damos click a
+ New Collection
Ponemos el nombre de la colección, para nuestro ejemplo jsonplaceholder
, podemos llenar las tabs que vienen, le damos click en create
:
En la nueva carpeta generada, podemos guardar las peticiones que tienen que ver con la aplicación o proyecto:
Uno puede importar la colección de otros y puede exportar su colección, para que otros puedan usarla también en su máquina.
Ejemplo animado:
:: Otras características
- Administrar autenticación — Postman nos permite acceder a las API sin importar el protocolo de autenticación.[ref]
- Crear, enviar y guardar solicitudes REST, SOAP o GraphQL
- Generar código JavaScript para hacer peticiones dinámicas[ref]
- Permite hacer pruebas con JavaScript para las peticiones API [ref]
- Podemos diseñar nuestra API desde Postman[ref]
Si quieres revisar a profundidad todo lo que hace Postman[ref]
Bibliografía y links que te puede interesar…