Definición
Una API (del inglés Application Programming Interface, o Interfaz de Programación de Aplicaciones) es un conjunto de reglas y especificaciones que permite a dos aplicaciones o sistemas comunicarse entre sí de forma estructurada. Funciona como un intermediario que define qué peticiones se pueden hacer, cómo deben formularse y qué respuestas se obtendrán.
La analogía clásica es la del camarero en un restaurante: tú (la aplicación cliente) no entras a la cocina (el sistema servidor) a prepararte el plato. Le pides al camarero (la API) lo que quieres de una carta predefinida (la documentación), y él se encarga de traerte el resultado. No necesitas saber cómo se cocina ni dónde están los ingredientes.
En el contexto empresarial moderno, las APIs son la base de la economía digital: cada vez que pagas con Stripe, ves un mapa de Google embebido o conectas tu app a un ERP como Holded, hay una API en medio haciendo posible esa integración.
Cómo funciona
El flujo típico de una API web sigue cuatro pasos:
- Cliente envía una petición: una aplicación (web, móvil, otro servidor) hace una solicitud HTTP a una URL específica (el endpoint), indicando qué quiere obtener o modificar.
- Servidor recibe y procesa: el servidor que aloja la API valida la petición (autenticación, permisos, formato), ejecuta la lógica necesaria (consultar base de datos, calcular, llamar a otros servicios).
- Servidor responde: devuelve una respuesta estructurada, normalmente en formato JSON, junto con un código de estado HTTP (200 OK, 404 Not Found, 500 Error, etc.).
- Cliente procesa la respuesta: la aplicación cliente interpreta los datos y los muestra al usuario o los usa para continuar su flujo.
La clave es que ambas partes acuerdan un contrato (la documentación de la API) sobre qué endpoints existen, qué parámetros aceptan y qué devuelven.
Ejemplo práctico
Imagina que tienes una tienda online y quieres mostrar el stock de un producto consultando tu ERP. Una petición a una API REST podría verse así:
// Petición desde el frontend
const respuesta = await fetch('https://api.miempresa.com/productos/12345', {
method: 'GET',
headers: {
'Authorization': 'Bearer tu_token_de_acceso',
'Content-Type': 'application/json'
}
});
const producto = await respuesta.json();
console.log(producto);
// {
// "id": 12345,
// "nombre": "Fresa de carburo Ø10mm",
// "stock": 47,
// "precio": 23.50,
// "disponible": true
// }
Este patrón es exactamente el que se usa en el día a día: una llamada HTTP, una respuesta JSON, y tu aplicación trabajando con datos vivos sin tener que duplicar la base de datos.
Tipos / Variantes
- API REST: el estándar actual de facto. Usa HTTP y verbos (GET, POST, PUT, DELETE) sobre recursos. Simple, ampliamente soportado.
- API GraphQL: alternativa moderna donde el cliente especifica qué datos exactos quiere recibir. Eficiente en aplicaciones con muchas relaciones de datos.
- API SOAP: protocolo más antiguo y verboso basado en XML. Sigue presente en sistemas empresariales legacy y banca.
- API gRPC: usa protocolos binarios y es altísimamente eficiente. Frecuente en arquitecturas de microservicios internos.
- API WebSocket: comunicación bidireccional en tiempo real, ideal para chats, notificaciones o actualizaciones en vivo.
Errores comunes
- Confundir API con backend: el backend es todo el sistema servidor; la API es solo la interfaz pública que expone parte de ese sistema.
- Pensar que toda API es REST: REST es un estilo arquitectónico, no todas las APIs lo siguen, aunque hoy sea el más común.
- Olvidar la autenticación: una API sin autenticación adecuada es una puerta abierta. Usa siempre tokens (API keys, OAuth, JWT) y HTTPS.
- Exponer datos sensibles: nunca devuelvas más información de la necesaria. Diseña respuestas pensando en el principio de mínimo privilegio.
Cuándo usarlo
Necesitas una API cuando:
- Tu aplicación móvil o web debe consumir datos de un servidor central
- Quieres permitir que terceros (clientes, partners, desarrolladores) se integren con tu sistema
- Tienes una arquitectura distribuida con varios servicios que deben comunicarse
- Necesitas exponer funcionalidad de tu producto como servicio (modelo API-as-a-product, como Stripe o Twilio)
No necesitas una API si todo tu sistema vive en una única aplicación monolítica que no se comunica con nada externo, aunque incluso ahí suele tener sentido para separar capas.
Referencias
- MDN Web Docs — Introducción a las APIs web
- REST API Tutorial — Roy Fielding
- Stripe API Reference — uno de los mejores ejemplos de diseño de API en la industria