Pruebas de API
Guía rápida de REST API: qué es una API, tipos (REST, SOAP, GraphQL, gRPC), pruebas relevantes, códigos HTTP, métodos, endpoints y metadata.
Una API (Interfaz de Programación de Aplicaciones) es un conjunto de reglas y protocolos que permite que dos aplicaciones distintas se comuniquen. Es como un puente que conecta sistemas para intercambiar información o ejecutar acciones.
- Conectar sistemas.
- Facilitar la integración entre aplicaciones, servicios o dispositivos.
- Reutilizar funcionalidades sin reprogramarlas desde cero.
- Estandarizar la comunicación entre software.
Tipos de API
| Característica | REST | SOAP | GraphQL | gRPC |
|---|---|---|---|---|
| Modelo | Recursos y métodos HTTP | Mensajes XML con contratos rígidos (WSDL) | Consultas (queries y mutations) definidas por el cliente | Llamadas a procedimientos remotos (RPC) |
| Formato | Generalmente JSON | Solo XML | JSON | Protocol Buffers (binario) |
| Flexibilidad | Media: devuelve el recurso completo | Baja: estructura fija y estricta | Muy alta: el cliente pide solo lo que necesita | Media: contratos en archivos .proto |
| Facilidad de pruebas | Alta: Postman, Playwright, curl | Media: validar XML y WSDL | Media-alta: construir queries | Media-baja: requiere tooling especial |
Pruebas más relevantes
- Validar los códigos de estado HTTP.
- Revisar el cuerpo de la respuesta: tipos de datos, estructura consistente, campos obligatorios.
- Confirmar validación de entradas con datos inválidos, incompletos o demasiado largos.
- Probar la seguridad: endpoints con autenticación, tokens caducados o inválidos.
- Evaluar consistencia de mensajes de error, que sean claros y no revelen información sensible.
- Revisar headers y metadata: Authorization, Content-Type, Cache-Control.
- Probar rendimiento y límites ante muchas requests.
- Validar compatibilidad y versionado: que los cambios no rompan clientes antiguos.
Códigos de estado HTTP
| Código | Significado | Descripción |
|---|---|---|
| 200 | OK | Petición exitosa. |
| 201 | Created | Recurso creado con éxito. |
| 400 | Bad Request | Petición mal formada o con datos inválidos. |
| 401 | Unauthorized | Falta autenticación (token/API key inválido). |
| 403 | Forbidden | Autenticado, pero sin permisos. |
| 404 | Not Found | El recurso no existe. |
| 500 | Internal Server Error | Error genérico en el servidor. |
| 503 | Service Unavailable | Servicio no disponible (mantenimiento o sobrecarga). |
URL base y endpoints
La URL base es el punto de entrada de la API; a partir de ella se construyen los endpoints agregando rutas específicas de recursos. Definirla una sola vez aporta consistencia, facilita la configuración (Postman, Playwright) y permite versionado sin romper compatibilidad.
https://api.example.com/v1 ← URL base (protocolo + dominio + versión)
https://api.example.com/v1/users ← endpoint: lista de usuarios
https://api.example.com/v1/users/123 ← endpoint: usuario 123Métodos HTTP
GET — Obtener datos
Recupera información sin modificarla. Idempotente, seguro y sin cuerpo.
POST — Crear recursos
Crea nuevos recursos o procesa datos. No idempotente, no seguro, con cuerpo (body).
PUT — Actualizar por completo
Reemplaza completamente un recurso existente. Idempotente; puede crear si no existe.
PATCH — Actualizar parcialmente
Modifica solo los campos enviados. Más eficiente para cambios menores.
DELETE — Eliminar
Elimina un recurso del servidor. Idempotente, sin cuerpo y destructivo.
Metadata (headers)
| Header | Función |
|---|---|
| Authorization | Envía credenciales para autenticación (token, Basic Auth). |
| Cache-Control | Indica cómo manejar la caché. |
| Content-Type / Accept | Definen el tipo de contenido enviado y aceptado (ej. application/json). |
| Host | Especifica el dominio del servidor al que va la petición. |
| User-Agent | Identifica el cliente que hace la request. |
Herramientas de prueba
Manuales y automatizadas: Postman (con JavaScript) y Playwright (con TypeScript). Consejo: define la URL base en un solo lugar (variable {{URL}} o playwright.config.ts) y reutilízala en cada endpoint.
Guarda o comparte este contenido
Descárgalo en PDF o Markdown para guardarlo o compartirlo.
