Contenido del curso
Conociendo Cypress
Validando el contenido de la respuesta
Haciendo diferentes tipos de peticiones
Bases de Datos
Prueba en conjunto
Próximos pasos
Cypress y JSON Server para pruebas de API
Resumen
Configurar un entorno de pruebas para APIs con Cypress y JSON Server te permite validar métodos HTTP como POST, PUT y DELETE sin depender de servicios públicos. Aprenderás a inicializar tu proyecto, instalar dependencias y levantar un servidor local que simule una API real, ideal si automatizas pruebas de backend o frontend.
¿Por qué usar JSON Server en lugar de una API pública?
Las APIs públicas como Poke API, Star Wars API o Rick and Morty son excelentes para consultas, pero tienen un límite claro: no aceptan modificaciones reales. Cuando necesitas probar métodos put, patch y delete, ningún servicio abierto va a permitir que cambies sus datos.
Ahí es donde entra JSON Server. Esta librería convierte un archivo .json en un servidor funcional que responde como una API real, con soporte completo para los verbos HTTP. Lo levantas en segundos y tienes control total sobre los datos.
¿Qué es JSON Server? Es una librería de Node que toma un archivo JSON y genera automáticamente endpoints REST. Sirve para simular APIs locales y probar operaciones CRUD sin tocar servicios externos.
¿Cómo inicializar el proyecto y instalar las dependencias?
Lo primero es abrir tu editor favorito. Yo uso WebStorm, pero VS Code, Atom o incluso un Notepad funcionan igual. La idea es que el flujo sea agnóstico al editor [0:20].
Desde una carpeta vacía, ejecuta el siguiente comando para crear el package.json sin preguntas interactivas:
bash npm init -y
El flag -y acepta los valores por defecto. Una vez creado el archivo, instala las tres librerías que vas a necesitar [1:05]:
- Cypress: framework para pruebas end to end y de API.
- Prettier: formateador de código que mantiene la consistencia al guardar.
- JSON Server: el servidor local que simulará tu API.
Un detalle práctico: activa Prettier para que formatee al guardar. Te ahorra tiempo y evita inconsistencias en el equipo.
¿Qué archivos debo crear antes de levantar el servidor?
Antes de correr cualquier cosa, crea tu .gitignore. Es una práctica básica que muchos saltan. Dentro incluye node_modules y la carpeta de configuración de tu IDE para no subir archivos pesados ni personales al repositorio [2:15].
Cómo abrir Cypress por primera vez
Para abrir Cypress y que genere su estructura de carpetas, ejecuta:
bash npx cypress open
Cypress crea tests de ejemplo que no vamos a usar. Para mantener el entorno limpio, abre el archivo cypress.json y configura los archivos a ignorar. También puedes borrar los tests por defecto. El objetivo es partir desde cero.
Cómo crear la base de datos en JSON
Crea un archivo llamado db.json en la raíz del proyecto. Dentro define un objeto con una propiedad llamada employees, que será un arreglo con tres registros: Juan, Ana y Javier [3:40].
{ "employees": [ { "id": 1, "name": "Juan" }, { "id": 2, "name": "Ana" }, { "id": 3, "name": "Javier" } ] }
Este archivo es la fuente de verdad de tu API local. JSON Server lo leerá y expondrá cada propiedad como un endpoint.
¿Cómo ejecutar JSON Server con un script de npm?
Abre tu package.json y agrega un script llamado run-server dentro de la sección de scripts:
"scripts": { "run-server": "json-server --watch db.json" }
El flag --watch mantiene el servidor escuchando cambios en el archivo. Cada vez que modifiques db.json, los endpoints reflejarán esos cambios. Para correrlo:
bash npm run run-server
La terminal te mostrará los recursos disponibles. Si abres Chrome y copias la URL del recurso employees, verás el JSON servido como respuesta de una API real [4:50].
¿Cómo probar los métodos HTTP desde Postman?
Una vez que el servidor está corriendo, puedes validar cada operación CRUD desde Postman. Aquí el flujo concreto:
- GET a /employees: devuelve el arreglo completo.
- GET a /employees/{id}: devuelve un empleado específico según el ID enviado.
- POST a /employees: crea un nuevo registro. No envíes el campo id, JSON Server lo asigna automáticamente.
- PUT a /employees/{id}: edita un registro existente. Por ejemplo, cambias el ID 4 con un nuevo nombre y se actualiza al instante.
- DELETE a /employees/{id}: elimina el registro. La respuesta es un objeto vacío con código de estado correcto.
¿Cómo creo un registro con POST en JSON Server? Envía un objeto JSON sin el campo id al endpoint del recurso. JSON Server genera el ID automáticamente y persiste el registro en db.json.
La magia está en que cada cambio se refleja directamente en el archivo db.json. Abres el archivo después de un POST y ya está el nuevo empleado ahí. Esto convierte a JSON Server en una herramienta ideal para pruebas reproducibles [7:30].
¿Qué viene después de configurar el entorno?
Con Cypress instalado, JSON Server corriendo y los métodos validados desde Postman, tu base está lista. El siguiente paso será escribir las pruebas dentro de Cypress, validar los headers de las respuestas y automatizar los assertions sobre los códigos de estado y el cuerpo de cada respuesta.
¿Vas a usar la misma base de datos de empleados, una propia, o conoces otra librería parecida a JSON Server? Cuéntalo en los comentarios.