Una API (Application Programming Interface o Interfaz de Programación de Aplicaciones) es un conjunto de reglas y especificaciones que permiten que diferentes programas o sistemas se comuniquen entre sí.
Se la puede imaginar como un contrato: el proveedor de la API define qué servicios ofrece, cómo pedirlos y qué se recibe a cambio.
El cliente que la consume no necesita saber cómo está programada internamente: solo importa qué datos pide y qué datos recibe.
🔎 Ejemplo cotidiano:
Cuando en tu celular usás una app de clima, esta consulta a una API de un servidor meteorológico.
La app pide temperatura actual en Córdoba, y la API responde con un valor: 28°C.
👉 El usuario final no ve la API, pero gracias a ella la app funciona.
REST significa Representational State Transfer. Fue propuesto en el año 2000 por Roy Fielding, uno de los autores de la especificación del protocolo HTTP, en su tesis doctoral (REST).
REST no es un programa, ni un protocolo nuevo, ni una librería. Es un estilo de arquitectura que define cómo deben diseñarse los servicios web para que sean simples, escalables y fáciles de usar.
Para que una API pueda considerarse RESTful, debería seguir estas reglas:
Arquitectura Cliente-Servidor
El cliente (app móvil, navegador, software de escritorio) y el servidor (donde vive la API) están separados. El cliente pide datos y el servidor responde. Esto permite independencia: se puede cambiar la app sin modificar la API, y viceversa.
Sin estado (Stateless)
Cada petición debe contener toda la información necesaria para que el servidor la entienda. El servidor no recuerda quién sos entre una petición y otra. Ejemplo: si hacés 3 consultas a /usuarios/1
, cada una debe incluir los datos de autenticación (ej. un token).
Uso de HTTP y sus métodos
Las APIs REST aprovechan los verbos estándar del protocolo HTTP:
Recursos identificados por URLs
Cada recurso (usuario, producto, pedido) se identifica por una dirección única.
Ejemplo:
/usuarios/1
→ usuario con ID = 1.
/productos/15
→ producto con ID = 15.
Representación de recursos
Los recursos pueden representarse en distintos formatos (JSON, XML, CSV, YAML). Hoy en día, el formato más usado es JSON, por su ligereza y compatibilidad con JavaScript.
Comunicación uniforme
La API debe ser predecible y consistente. Ejemplo: si /usuarios/1
devuelve datos en JSON, /usuarios/2
también debería hacerlo.
Supongamos que tenemos un sistema de usuarios.
Petición (Request):
GET https://api.ejemplo.com/usuarios/1
Respuesta (Response):
{
"id": 1,
"nombre": "Ana",
"email": "ana@ejemplo.com"
}
👉 El cliente pidió el recurso usuario con ID 1, y la API respondió con su información en formato JSON.
Imaginemos que la API REST es como un restaurante:
Así funciona: pedís algo → la API lo lleva → el servidor responde → vos recibís lo que pediste.
Las APIs REST están en casi todo lo que usamos día a día:
Una API REST es un servicio web diseñado bajo principios claros (cliente-servidor, stateless, URLs como identificadores de recursos, métodos HTTP y datos en JSON).
Permite que diferentes sistemas intercambien datos de manera eficiente, escalable y estandarizada.
Es el pilar fundamental de la mayoría de las aplicaciones modernas: desde redes sociales hasta servicios financieros y de mapas.
👉 En otras palabras: REST convirtió a Internet en una red de servicios conectados, no solo de páginas web.