Si llevas un tiempo aprendiendo desarrollo web, seguramente has escuchado el término API REST en algún tutorial o en una oferta de trabajo. Pero ¿qué es exactamente? ¿Para qué sirve? En este artículo te lo explico desde cero con ejemplos reales y sencillos.
¿Qué es una API?
Una API (Application Programming Interface, o Interfaz de Programación de Aplicaciones) es un conjunto de reglas que permite que dos aplicaciones se comuniquen entre sí. Dicho de forma sencilla: es un intermediario que permite que tu aplicación hable con otra.
Imagina que estás en un restaurante. Tú eres el cliente, la cocina es el servidor y el camarero es la API. Tú no vas directamente a la cocina a pedir tu comida — le dices al camarero lo que quieres, el camarero va a la cocina, recoge la comida y te la trae. La API hace exactamente eso entre aplicaciones.
¿Qué es REST?
REST (Representational State Transfer) es un estilo de arquitectura para diseñar APIs. No es un protocolo ni un estándar oficial, sino un conjunto de principios que definen cómo debe comportarse una API para ser considerada «RESTful».
Los principios principales de REST son:
- Sin estado (stateless): cada petición al servidor debe contener toda la información necesaria para procesarla. El servidor no recuerda peticiones anteriores.
- Interfaz uniforme: los recursos se identifican mediante URLs y se manipulan usando los métodos HTTP estándar.
- Cliente-servidor: el cliente y el servidor están separados y se comunican a través de la API.
- Cacheable: las respuestas pueden almacenarse en caché para mejorar el rendimiento.
¿Cómo funciona una API REST?
Una API REST funciona mediante peticiones HTTP. El cliente (tu aplicación frontend, una app móvil, etc.) hace una petición a una URL específica y el servidor responde con datos, normalmente en formato JSON.
Los cuatro métodos HTTP más usados en REST son:
- GET: obtener datos. No modifica nada en el servidor.
- POST: crear un nuevo recurso.
- PUT / PATCH: actualizar un recurso existente.
- DELETE: eliminar un recurso.
Ejemplo práctico de API REST
Imagina que tienes una API para gestionar usuarios. Las URLs y métodos serían así:
# Obtener todos los usuarios
GET https://api.ejemplo.com/usuarios
# Obtener un usuario concreto (con id 5)
GET https://api.ejemplo.com/usuarios/5
# Crear un nuevo usuario
POST https://api.ejemplo.com/usuarios
# Actualizar el usuario con id 5
PUT https://api.ejemplo.com/usuarios/5
# Eliminar el usuario con id 5
DELETE https://api.ejemplo.com/usuarios/5
Cada URL representa un recurso (usuarios) y el método HTTP indica qué acción realizar sobre ese recurso. Esto es el corazón de REST.
¿Qué es JSON y por qué lo usan las APIs?
JSON (JavaScript Object Notation) es el formato de datos más usado para enviar y recibir información en APIs REST. Es ligero, fácil de leer y compatible con prácticamente todos los lenguajes de programación.
Así sería la respuesta de una API al pedir los datos de un usuario:
{
"id": 5,
"nombre": "Carlos García",
"email": "carlos@ejemplo.com",
"rol": "admin",
"fechaRegistro": "2025-01-15"
}
Y así sería una lista de usuarios:
[
{
"id": 1,
"nombre": "Ana López",
"email": "ana@ejemplo.com"
},
{
"id": 2,
"nombre": "Pedro Martínez",
"email": "pedro@ejemplo.com"
}
]
Códigos de estado HTTP más importantes
Cuando una API responde a una petición, incluye un código de estado que indica si la operación fue exitosa o no. Los más importantes que debes conocer:
- 200 OK: la petición fue exitosa.
- 201 Created: el recurso fue creado correctamente (respuesta típica de POST).
- 400 Bad Request: la petición tiene errores (datos incorrectos o incompletos).
- 401 Unauthorized: necesitas autenticarte para acceder.
- 403 Forbidden: no tienes permisos para acceder a ese recurso.
- 404 Not Found: el recurso no existe.
- 500 Internal Server Error: error en el servidor.
Ejemplo real: consumir una API pública con JavaScript
Una de las mejores formas de aprender es practicar con APIs reales y gratuitas. Aquí tienes un ejemplo con la API pública de JSONPlaceholder, que simula datos de una aplicación:
// Obtener una lista de posts
fetch('https://jsonplaceholder.typicode.com/posts')
.then(response => response.json())
.then(data => {
console.log(data); // Array con 100 posts
})
.catch(error => {
console.error('Error:', error);
});
// Con async/await (forma más moderna)
async function obtenerPosts() {
try {
const response = await fetch('https://jsonplaceholder.typicode.com/posts');
const posts = await response.json();
console.log(posts);
} catch (error) {
console.error('Error:', error);
}
}
obtenerPosts();
API REST vs otras arquitecturas
REST no es la única forma de diseñar APIs. Estas son las alternativas más comunes y cuándo usar cada una:
- REST: la opción más extendida. Ideal para la mayoría de aplicaciones web y móviles. Fácil de entender y usar.
- GraphQL: desarrollado por Facebook. Permite al cliente pedir exactamente los datos que necesita, ni más ni menos. Más flexible que REST pero más complejo de implementar.
- SOAP: protocolo más antiguo y complejo. Se usa en sistemas empresariales legacy. Hoy en día prácticamente no se usa en proyectos nuevos.
Para empezar, céntrate en REST. Es lo que usan la mayoría de empresas y lo que encontrarás en casi todas las ofertas de trabajo.
¿Por qué es importante aprender APIs REST?
Las APIs REST están en todas partes. Cuando una aplicación web muestra el tiempo, consulta una API. Cuando te logeas con Google en una web, hay una API por detrás. Cuando una tienda online procesa un pago, usa una API.
Como desarrollador web, trabajarás con APIs constantemente, tanto consumiéndolas (frontend) como creándolas (backend). Es una de las habilidades más valoradas en el mercado laboral.
Próximos pasos
Ahora que ya entiendes qué es una API REST y cómo funciona, el siguiente paso es practicar. Te recomiendo empezar con estas APIs públicas y gratuitas para hacer tus primeras peticiones:
- JSONPlaceholder — API de prueba con posts, usuarios y comentarios
- PokéAPI — API con datos de Pokémon, perfecta para practicar
- OpenWeatherMap — API del tiempo con plan gratuito
En próximos artículos veremos cómo crear tu propia API REST con Spring Boot desde cero.