Pruebas de Rutas Protegidas con API Key en Node.js
Clase 12 de 25 • Curso de End to End Testing para APIs REST con Node.js
Contenido del curso
- 2

Exploración y Configuración de APIs con Insomnia y Postman
10:37 - 3

Pruebas en Node.js con Jest y Clean Architecture
10:06 - 4

Configuración y uso de Jest para pruebas end-to-end en JavaScript
08:04 - 5

Pruebas End-to-End con Supertest y Node.js
13:47 - 6

Buenas prácticas en pruebas con Jest y manejo de ciclos abiertos
08:30
- 7

Configuración de Entorno de Pruebas para Aplicaciones Node.js con Twen.js
11:25 - 8

Generación de Reporte de Cobertura con Pruebas End to End
07:32 - 9

Pruebas de Integridad de Datos con DTOs y Joy en APIs REST
20:16 - 10

Pruebas End-to-End con Base de Datos en API REST
17:21 - 11

Pruebas de Autenticación en Login con JavaScript
16:26 - 12

Pruebas de Rutas Protegidas con API Key en Node.js
07:03 - 13

Pruebas End-to-End con Access Token en API REST
14:16 - 14

Pruebas Efectivas de Creación de Usuarios en POS con Bases de Datos
09:03
- 15

Pruebas End-to-End: Gestión de Datos con Semillas Automatizadas
10:26 - 16

Configuración de Bases de Datos para Pruebas End-to-End con Docker
17:57 - 17

Creación de Sets de Datos Manuales para Pruebas End-to-End
15:49 - 18

Sets de Datos en SQLite: Creación y Gestión Efectiva
14:58 - 19

Uso de Unsook para Migraciones Programáticas en Pruebas
10:53 - 20

Pruebas de API: Creación de Categorías con Roles y Tokens
10:28 - 21

Pruebas End-to-End para API de Productos sin Autenticación
06:01 - 22

Pruebas de Paginación en Endpoints de Productos con Limit y Offset
04:38
¿Cómo utilizar API keys para pruebas protegidas?
Las pruebas de endpoints con restricciones son comunes al desarrollar APIs. En los casos donde se requiere más que un simple login, es esencial entender cómo enviar API keys en las cabeceras (headers) para obtener autorización. Este artículo explica el proceso para ejecutar dichas pruebas usando herramientas como Insomnia o Postman, y cómo integrarlas en tu flujo de pruebas automatizadas.
¿Qué pasos seguir para realizar solicitudes de prueba?
En primeras instancias, al enviar solicitudes de prueba a un endpoint protegido por un middleware, es común encontrarse con el mensaje de "no autorizado", debido a la falta de un API key adjunto en los headers. Para rectificar esto:
-
Verificar la necesidad de la API Key: Asegúrate de que la ruta que estás probando exige una API Key. Esto suele estar especificado en el middleware, que controla el acceso a la ruta.
-
Consultar las variables de entorno: Si la API key se almacena como una variable de entorno, localízala en el archivo de configuración (generalmente .env).
-
Configurar la solicitud con la API Key: Utiliza herramientas como Insomnia o Postman para enviar la API Key en los headers de la solicitud. Asegúrate de que el valor sea exacto.
Por ejemplo, configurar una API Key desde Insomnia puede lograrse accediendo a los headers y añadiendo el campo API junto al valor correspondiente.
¿Cómo implementar pruebas automatizadas efectivamente?
Una vez dominado el envío manual de API Keys, es momento de automatizar el proceso dentro del código. Aquí hay un ejemplo de cómo hacerlo en un archivo JavaScript de pruebas:
const request = require('supertest');
const app = require('../app'); // Asegúrate de apuntar al archivo correcto
const config = require('../config');
describe('Pruebas para nueva ruta', () => {
it('debería retornar 401 sin API key', async () => {
const response = await request(app).get('/nueva-ruta');
expect(response.statusCode).toBe(401);
});
it('debería retornar 401 con API key inválida', async () => {
const response = await request(app)
.get('/nueva-ruta')
.set('API', 'invalid-api-key');
expect(response.statusCode).toBe(401);
});
it('debería retornar 200 con API key válida', async () => {
const response = await request(app)
.get('/nueva-ruta')
.set('API', config.apiKey);
expect(response.statusCode).toBe(200);
});
});
¿Qué hemos aprendido sobre la autenticación de API Keys?
Esta lección ha mostrado cómo realizar pruebas a rutas protegidas ajustando los headers para incluir API Keys. Esto no sólo facilita las pruebas manuales, sino que además mejora la automatización de las pruebas a través de herramientas como supertest. Al comprender cómo emplear API Keys adecuadamente, estás en el camino hacia la construcción de APIs seguras y confiables.
Recuerda siempre mantener organizadas tus variables de entorno y automatizar tus pruebas. Estas prácticas asegurarán una mejor gestión de tus proyectos y te prepararán mejor para las futuras lecciones sobre la validación de autenticaciones más avanzadas, como las basadas en JWT. ¡Sigue adelante con tu aprendizaje y sigue explorando las maravillas del desarrollo de APIs robustas y seguras!