En el tutorial anterior sobre APIs, vimos como testearlas con Swagger. En esta ocasión vamos a realizar los mismos ejercicios, pero utilizando Postman. Antes de empezar, voy a colocar la misma introducción del post anterior, para refrescar un poco la teoría sobre APIs. (Si ya lo leyeron en el post de Swagger, pueden saltarse esta primera parte)
¿Qué es una API?
El término API es una abreviatura de Application Programming Interfaces, que en español significa interfaz de programación de aplicaciones. De forma resumida podemos decir que se utiliza para permitir la comunicación entre dos aplicaciones a través de un conjunto de reglas.
Es esta comunicación podemos establecer como un módulo de un software interactúa con otro, para cumplir una o muchas funciones dependiendo de los permisos que les dé el propietario de la API a los desarrolladores de terceros.
De cara al usuario final, lo único que se ve de una API, son los resultados. Un ejemplo de esto, es cuando entramos a una aplicación móvil o web y nos permite loguear utilizando nuestra cuenta de Facebook o Google. En este caso, esa aplicación se esta conectando a la API de estas empresas para obtener tus datos de sesión.
Las API pueden ser privadas para el uso de una empresa, abiertas sólo para partners, o públicas para que cualquier desarrollador pueda interactuar con ellas. También es muy común ver APIs locales para que aplicaciones se comuniquen dentro de un mismo ambiente.
¿Para qué sirve una API?
Una de las principales funciones de una API es la de poder facilitarle el trabajo a los desarrolladores y ahorrar tiempo y dinero. Para explicar esto con un ejemplo y que quede claro, vamos a suponer que nos piden desarrollar una tienda virtual que tenga una web y una aplicación móvil. Esta tienda tendría una estructura como la siguiente:
- Versión web de la tienda (para acceder desde la PC o desde el movil de forma responsive)
- Versión mobile (para instalar en el móvil)
- Base de datos para almacenar los productos
- Módulo de pago
Cuando un usuario entra a la página web de la tienda y de 10 teléfonos compra 2, el sistema debería descontarlos del stock y nos quedarían 8 teléfonos. Si entramos desde la aplicación móvil y revisamos ese producto luego de la compra, deberíamos ver 8 productos y no 10.
Toda esta conexión se puede lograr a través de APIs, ahorrandole al desarrollador tener que escribir un código para la web y uno para la versión móvil, debido a que ambas plataformas consumen el mismo backend. (Esto es un ejemplo de una API local)
Por otro lado, en el listado de funcionalidades mencionamos al módulo de pago. En este caso para ahorrarnos tiempos de desarrollo, podemos usar APIs existentes para la pasarela de pago y así permitirle al usuario poder pagar a través deMercadoPago, Paypal o cualquier otra plataforma similar sin tener que desarrollar algo de cero. (Esto es un ejemplo de una API externa, debido a que estamos interactuando con una API no creada por nosotros)
¿Qué son los EndPoint y los métodos?
De forma resumida podemos decir que los EndPoint son las URLs de una API y cada EndPoint puede tener varios métodos. Los métodos son todas las formas que tenemos de poder interactura con ese EndPoint.
Entre los métodos más comunes encontramos a los siguientes:
- POST: crear un recurso nuevo.
- PUT: modificar un recurso existente.
- GET: consultar información de un recurso.
- DELETE: eliminar un recurso determinado.
- PATCH: modificar solamente un atributo de un recurso.
Para explicarlo con el ejemplo de la tienda podemos decir que con el método POST, podemos crear un nuevo producto. Con el método PUT podemos modificar un producto de la tienda, con el GET podemos traer todos los productos o un producto en específico, con el DELETE podemos eliminar el producto y con el PATCH podemos modificar un atributo de un producto.
¿Qué es Postman?
Postman es un cliente que permite gestionar peticiones a las APIs. Es una herramienta muy completa y muy utilizada, y su mayor ventaja es que permite crear tests automatizados. Otra de sus ventajas, es que ahora se puede usar la versión web y también la versión cliente, pudiendo sincronizar nuestras colecciones. Y también, nos permite compartir nuestras colecciones con nuestros compañeros de trabajo, lo cual la vuelve nuestra nueva mejor amiga.
Para empezar, debemos ir a la web de Postman y descargarlo.
Abrimos el programa y nos vamos a Workspaces >> + New Workspace
Le colocamos un nombre y lo creamos.
Acá podemos invitar a nuestros compañeros para que puedan ver y colaborar en nuestro espacio de trabajo.
Una vez creado, debemos crear una colección. Las colecciones son basicamente el conjunto de peticiones que tendrá un endpoint. Para este caso, utilizaré la misma API que en el post anterior.
La colección que haré ahora, servirá para testear los metodos principales del endpoint «pet»
Una vez creada la colección, comenzaremos a agregar request. Uno por cada metodo que deseemos a testear. El primero será el GET para listar a todas las mascotas segun su estado.
Una vez creado el request, vamos al Swagger y vemos a que URL hay que realizarle el request.
Ejemplo método GET (Listar)
Y esa misma URL es la que debemos poner en el GET de Postman
Al clickear en SEND, podremos ver los resultados que devuelve la petición.
Algunas cosas a aclarar…
Para hacer este GET, debemos especificar si o si el estado. Es decir, si queremos listar mascotas disponibles, vendidas o pendientes. Swagger, nos da la opción de seleccionarlas desde la interface web. Pero en Postman debemos pasarla como un parámetro. Esto automáticamente la pondrá en la URL, o si la colocamos en la URL, de forma automática se colocará como parámetro.
Ejemplo método POST (Crear)
Para agregar un nuevo Request, debemos ir a los 3 puntos de nuestra colección y clickeamos en «Add Request»
Para el método POST, debemos enviarle un body tal cual indica la documentación de Swagger
Copiamos ese contenido del body, y dentro de Postman debemos pegarlo el body. Tener en cuenta de que debemos seleccionar la opción RAW e indicarle que es de tipo JSON
Al clickear en SEND, podremos ver que nos devuelve una respuesta con un Status 200, lo cual indica que se creó correctamente.
Ejemplo método PUT (Update/Actualizar)
Muy similar al anterior, colocamos en el Body, el JSON con las modificaciones a realizar. Recuerden que para este método es sumamente importante especificar el ID de la mascota, para que Postman sepa que mascota modificar.
Al clickear en el botón SEND, se enviará la petición y realizará el cambio. En este caso, actualicé el nombre de la mascota que creamos anteriormente.
Ejemplo método DELETE (Eliminar)
Con este último método, lo que haremos será eliminar una mascota. Para ello, debemos colocar el ID en la URL del request.
Al presionar SEND, esto eliminará a la mascota con ese ID.
Esto es todo por ahora, proximamente haré uno o dos posts de Postman más explicando como colocar variables y sobre como automatizar las ejecuciones de los tests.
Nos leemos en el próximo post!