¿Qué es un mock server?

¿Qué es un mock server?

Un mock server en Postman es una herramienta que nos permite simular las respuestas de una API (Application Programming Interfaces - Interfaz de Programación de Aplicaciones). Esto es especialmente útil cuando en nuestro entorno laboral no tenemos aún una API desarrollada por el equipo de backend, pues con esto podremos crear entornos en donde obtendremos una respuesta por parte del servidor.

Con un mock server puedes definir y configurar diferentes endpoints según las necesidades y las respuestas según la situación. Las respuestas pueden incluir datos de ejemplos o incluso respuestas predefinidas que permiten validar puntos en tu aplicación. Esto es especialmente útil en las primeras etapas de desarrollos cuando aún no se tiene una API real.

En este artículo explicaré las ventajas, desventajas y un ejemplo práctico del uso de esta herramienta.

Nota: Postman se puede usar de manera web o con una aplicación descargada. Ambas tienen la misma funcionalidad y están vinculadas. En este artículo, usaremos la aplicación descargada, pero puedes usar la que sea de tu agrado.

Ventajas

✅ El uso de un mock server provee muchas ventajas significativas, ya que en una etapa temprana del proyecto donde no tenemos una API de la cual apoyarnos, puede marcar una sólida diferencia sobre cuánto recorrido podemos tomar en un proyecto. Una ventaja importante es que es totalmente independiente de un servidor real, pues el mock server permite simular una respuesta de una API sin tener un servidor real.

✅ Puedes hacer pruebas tempranas de tu aplicación y validar el comportamiento del proyecto mucho antes de que la API esté lista, esto sin afectar a un servidor real.

✅ Control sobre las respuestas: puedes configurar el mock server de manera que puedas devolver respuestas específicas que te ayuden a probar diferentes escenarios o testear límites en tu proyecto, lo cual es genial, pues si tu proyecto requiere de mucha lógica, esto te ayudará mucho más a encontrar los problemas y a darte soluciones más eficazmente.

También ayuda a reducir la dependencia de servicios externos durante el desarrollo, mejorando así la eficiencia y permitiendo una mayor automatización en las pruebas.

Desventajas

✖️Los mocks, por su naturaleza simulada, pueden no capturar todas las complejidades del sistema real, lo que podría llevar a falsos positivos en las pruebas. Además, si no se mantienen adecuadamente, los mocks pueden volverse obsoletos y no reflejar con precisión el comportamiento del sistema en producción. Esto podría conducir a fallos inesperados cuando se conecta con el sistema real.

¿Cómo crear un mock server en Postman?

Se debe crear una open API. Para esto, debemos seguir las siguientes instrucciones:

Paso 1: En el costado izquierdo veremos un menú lateral, seleccionar APIs, luego dar clic en el icono de agregar.


Paso 2: Para cambiar el nombre predeterminado que aparece, podemos realizado de varias maneras:

  • Por el teclado: Presionando Ctrl + E.
  • Por selección de menú: Este lo encontramos al lado derecho del nombre predeterminado New API, clic en los tres puntos laterales y se extenderá el menú en el cual se debe seleccionar, renombrar.
  • Por descripción de la API: Es decir, cuando le damos clic al nombre predeterminado, se extiende una vista a la derecha. En la parte superior, seleccionar el nombre y renombrarlo.


Paso 3: Debemos tener una Open Api creada. Para fines de este ejemplo, usaremos la siguiente:

Ejemplo llamado: libreria.json

openapi: 3.0.0

info:

title: API de Librería

description: API para gestionar libros y autores en una librería

version: 1.0.0

paths:

/libros:

get:

summary: Obtiene la lista de todos los libros

responses:

'200':

description: Lista de libros obtenida correctamente

content:

application/json:

example:

libros:

- id: 1

titulo: "Cien años de soledad"

autor: "Gabriel García Márquez"

- id: 2

titulo: "1984"

autor: "George Orwell"

post:

summary: Crea un nuevo libro

requestBody:

required: true

content:

application/json:

schema:

type: object

properties:

titulo:

type: string

autor:

type: string

responses:

'201':

description: Libro creado correctamente

'400':

description: Petición inválida

/libros/{id}:

parameters:

- name: id

in: path

required: true

description: ID del libro

schema:

type: integer

get:

summary: Obtiene un libro por su ID

responses:

'200':

description: Libro obtenido correctamente

content:

application/json:

example:

id: 1

titulo: "Cien años de soledad"

autor: "Gabriel García Márquez"

'404':

description: Libro no encontrado

put:

summary: Actualiza un libro existente por su ID

requestBody:

required: true

content:

application/json:

schema:

type: object

properties:

titulo:

type: string

autor:

type: string

responses:

'200':

description: Libro actualizado correctamente

'404':

description: Libro no encontrado

'400':

description: Petición inválida

delete:

summary: Elimina un libro por su ID

responses:

'204':

description: Libro eliminado correctamente

'404':

description: Libro no encontrado

👉 Si deseas descargar el ejemplo, puedes hacerlo en este enlace.

El archivo de ejemplo se debe guardar en el definition del Postman.

⚠️ Se debe seleccionar como JSON, ya que este es el formato del ejemplo. Si requieres YAML, se debe convertir el archivo previamente.




A continuación, en los tres puntos de la derecha del nombre de la API, has clic, luego, selecciona add collection, seguido de la opción generate from definition.


En el modal que nos muestra luego de la opción seleccionada, escribir el nombre de la colección. En este ejemplo será LibreríaAPI, luego dar clic en Generate Collection.


Como ya tenemos lograda la colección, la visualizamos de esta manera:


⚠️ Si por alguna razón no se logra visualizar a este punto, se deben repasar los pasos anteriores.

Ahora necesitamos que la colección se encuentre junto con las demás. Por lo tanto, haz clic en los tres puntos laterales y selecciona copy to collections.


Esto agregará la colección creada en el apartado APIs en el apartado Collections del menú lateral izquierdo de Postman.

Nos dirigimos al menú lateral izquierdo de Postman y hacemos clic en Mock Server, seleccionando create mock server.

Seleccionamos ahí la colección que deseamos, en este caso Librería API.


Ahora se escribe el nombre del mock server. En este ejemplo será PruebaLibrería. A continuación, haz clic en Create Mock Server.


Si logramos ver esto, hemos logrado crear el mock server correctamente.


Para probar el mock server, es muy sencillo:

Paso 1: Copiamos el link que observamos en la imagen anterior.

Paso 2: abrimos una petición http en Postman. En este ejemplo será verificando el endpoint: /libros/{id}, el cual una vez completo queda de la siguiente manera:

https://fa6bd7c6-c07e-4f26-98c6-4aa37fcce937.mock.pstmn.io/libros/1

La respuesta debe ser:

{

"example": {

"id": 1,

"titulo": "Cien años de soledad",

"autor": "Gabriel García Márquez"

}

}



Al hacer clic en el botón send, podemos observar una respuesta a la petición http, lo cual es lo maravilloso de esta herramienta, ya que solo ha sido texto todo lo que hemos creado al momento y, aun así, logramos observar que podemos ver el funcionamiento de la API como si esta estuviera en funcionamiento normal.

Conclusiones

Utilizar un mock server con Postman es esencial en el desarrollo de software por varias razones fundamentales. En un mundo donde la velocidad y la precisión son clave, los mock servers actúan como puentes vitales entre los equipos de desarrollo, especialmente en entornos ágiles.

Al simular respuestas del servidor antes de que el backend esté completamente desarrollado, los equipos de frontend pueden avanzar con sus trabajos sin depender de las implementaciones del backend. Esto fomenta una colaboración más fluida y permite que el desarrollo frontend y backend progrese simultáneamente, lo que acelera el tiempo de comercialización.

Además, los mock servers son valiosos en el contexto de pruebas de integración. Permiten a los equipos verificar cómo interactúan diferentes componentes del sistema antes de que estén completamente operativos. Esto facilita la identificación temprana de problemas de integración, lo que ahorra tiempo y recursos significativos a medida que el proyecto avanza hacia etapas más avanzadas. Los mocks también proporcionan un entorno controlado y predecible para las pruebas, lo que garantiza que las pruebas sean coherentes y reproducibles, factores críticos para garantizar la calidad del software.

Otro beneficio importante radica en su capacidad para reducir la dependencia de servicios externos durante el desarrollo. Los equipos pueden trabajar de forma independiente sin tener que esperar que los servicios externos estén disponibles para las pruebas. Esto es especialmente útil en proyectos complejos donde múltiples servicios y equipos están involucrados, ya que cada equipo puede desarrollar y probar su funcionalidad utilizando mocks sin preocuparse por la disponibilidad de otros servicios.

Sin embargo, es crucial destacar que, aunque los mock servers en Postman son poderosos, su eficacia depende de su correcta implementación y mantenimiento. Deben actualizarse regularmente para reflejar con precisión el comportamiento del sistema en producción y asegurar que las pruebas sean verdaderamente representativas del mundo real. En última instancia, el uso de un mock server con Postman no solo acelera el proceso de desarrollo, sino que también mejora la calidad del software al facilitar una colaboración más fluida, pruebas de integración efectivas y un enfoque más eficiente para el desarrollo de aplicaciones.

Espero que este contenido te sea de mucha ayuda para practicar nuevas técnicas en tus proyectos. Nunca dejes de practicar todos los conocimientos para ser cada vez mejor 💻.

¡Hasta la próxima! 🚀

💡
Las opiniones y comentarios emitidos en este artículo son propiedad única de su autor y no necesariamente representan el punto de vista de Listopro.

Listopro Community da la bienvenida a todas las razas, etnias, nacionalidades, credos, géneros, orientaciones, puntos de vista e ideologías, siempre y cuando promuevan la diversidad, la equidad, la inclusión y el crecimiento profesional de los profesionales en tecnología.