Arquitectura Intermedio

REST

Representational State Transfer. Estilo arquitectónico para diseñar APIs web que usa los métodos HTTP estándar y principios de recursos para crear interfaces simples y escalables.

Pronunciación

/rɛst/
"rest"
Escuchar en: Forvo Cambridge

Qué es

REST significa Representational State Transfer. Es un conjunto de principios para diseñar APIs web que usa el protocolo HTTP de forma que cualquier cliente (web, móvil, otro servidor) pueda comunicarse con el servidor de forma predecible.

Una API que sigue estos principios se llama RESTful o API REST.

Los 6 Principios de REST

PrincipioDescripción
Sin estado (Stateless)Cada petición contiene toda la información necesaria — el servidor no “recuerda” peticiones anteriores
Cliente-ServidorEl cliente y el servidor son independientes — el cliente no sabe cómo funciona el backend
Interfaz uniformeRecursos con URLs consistentes y métodos HTTP estándar
CachéLas respuestas pueden indicar si pueden guardarse en caché
Sistema por capasEl cliente no sabe si hay proxies o balanceadores entre ellos
Código bajo demanda (opcional)El servidor puede enviar código ejecutable al cliente

Los Métodos HTTP en REST

MétodoOperaciónEjemplo
GETObtener datosGET /usuarios/123 → devuelve el usuario 123
POSTCrear nuevo recursoPOST /usuarios → crea un usuario nuevo
PUTActualizar completamentePUT /usuarios/123 → reemplaza el usuario 123
PATCHActualizar parcialmentePATCH /usuarios/123 → actualiza solo el email
DELETEEliminarDELETE /usuarios/123 → borra el usuario 123

Diseño de URLs RESTful

Una API REST bien diseñada usa sustantivos (no verbos) en las URLs:

✅ RESTful:
GET    /productos          → lista de productos
GET    /productos/42       → producto con ID 42
POST   /productos          → crear producto
PUT    /productos/42       → actualizar producto 42
DELETE /productos/42       → eliminar producto 42

❌ No RESTful:
GET /getProductos
GET /obtenerProducto?id=42
POST /crearProducto
GET /borrarProducto?id=42

Respuestas y Códigos HTTP

Las APIs REST usan los códigos de estado HTTP estándar:

CódigoSignificadoCuándo se usa
200 OKÉxitoGET o PUT exitoso
201 CreatedRecurso creadoPOST exitoso
204 No ContentÉxito sin contenidoDELETE exitoso
400 Bad RequestPetición inválidaDatos faltantes o incorrectos
401 UnauthorizedNo autenticadoSin token o token inválido
403 ForbiddenSin permisosToken válido pero sin acceso
404 Not FoundNo existeRecurso no encontrado
500 Server ErrorError del servidorBug interno

Ejemplo real de respuesta REST

// GET /pedidos/789
{
  "id": 789,
  "estado": "en_preparacion",
  "cliente": {
    "id": 123,
    "nombre": "Ana García"
  },
  "items": [
    { "producto": "Laptop", "cantidad": 1, "precio": 1299.99 }
  ],
  "total": 1299.99,
  "creadoEn": "2026-03-10T14:30:00Z"
}

REST vs otras alternativas

TecnologíaCaso de uso idealDiferencia clave
RESTLa mayoría de APIs webSimple, estándar, amplio soporte
GraphQLAPIs con datos complejos y variablesEl cliente elige exactamente qué campos recibe
gRPCComunicación interna entre microserviciosMás rápido, tipado estricto, menos legible
SOAPSistemas legacy o empresarialesProtocolo XML más verboso y estricto

Por qué importa

Cuando un equipo de desarrollo dice “construiremos una API REST”, están tomando decisiones que afectan:

  • La facilidad de integrar el sistema con otras herramientas
  • El rendimiento y escalabilidad
  • La documentación y mantenibilidad
  • La experiencia de desarrollo para quien consume la API

Una API REST bien diseñada dura años y puede ser consumida por web, móvil, y otros sistemas sin cambios.

Términos relacionados

  • [[API]] - El concepto general; REST es el estilo de diseño más popular
  • [[Endpoint]] - Cada URL de una API REST es un endpoint
  • [[JWT]] - El estándar para autenticar peticiones en APIs REST
  • [[Microservices]] - Arquitectura donde cada servicio expone su propia API REST

Recursos adicionales: