1 Introducción
Las APIs son la forma en que los sistemas intercambian datos. Aunque REST con JSON es hoy el estándar más usado, no es la única arquitectura:
- Antes fue común SOAP (Simple Object Access Protocol).
- Hoy crece el uso de GraphQL como alternativa moderna.
👉 Conocer sus diferencias permite elegir la herramienta adecuada para cada proyecto.
2 APIs REST
- Basadas en el protocolo HTTP.
- Usan métodos estándar (GET, POST, PUT, DELETE, etc.).
- Intercambian datos generalmente en JSON.
- Los recursos se representan como URLs (
/usuarios/1
).
Ejemplo REST
GET /usuarios/1
Respuesta
{
"id": 1,
"nombre": "Ana",
"email": "ana@ejemplo.com"
}
Ventajas
- Simple y fácil de entender.
- Muy usado y compatible en casi todos los lenguajes.
- JSON es ligero y legible.
Desventajas
- Overfetching: a veces devuelve más datos de los necesarios.
- Underfetching: a veces hay que hacer varias peticiones para obtener todo lo necesario.
3 APIs SOAP
SOAP (Simple Object Access Protocol) es un estándar más antiguo.
- Basado en XML.
- Opera sobre HTTP pero también sobre otros protocolos (SMTP, TCP).
- Muy usado en servicios empresariales y en sistemas legados (bancos, seguros, gobiernos).
Ejemplo SOAP
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:Body>
<getUsuarioRequest>
<id>1</id>
</getUsuarioRequest>
</soapenv:Body>
</soapenv:Envelope>
Respuesta SOAP
<soapenv:Envelope>
<soapenv:Body>
<getUsuarioResponse>
<usuario>
<id>1</id>
<nombre>Ana</nombre>
<email>ana@ejemplo.com</email>
</usuario>
</getUsuarioResponse>
</soapenv:Body>
</soapenv:Envelope>
Ventajas
- Tipado fuerte y contrato formal usando WSDL (Web Services Description Language).
- Estándares robustos para seguridad (WS-Security) y transacciones distribuidas.
- Fiable en entornos corporativos críticos.
Desventajas
- XML es más pesado y verboso que JSON.
- Complejidad en la implementación.
- Menos flexible que REST y GraphQL.
4 APIs GraphQL
- Creado por Facebook en 2015 como alternativa a REST.
- El cliente define exactamente qué datos necesita, evitando overfetching y underfetching.
- Usa un único endpoint (ejemplo:
/graphql
).
- Los datos se consultan con un lenguaje de queries similar a SQL.
Ejemplo GraphQL (consulta)
{
usuario(id: 1) {
nombre
email
pedidos {
id
total
}
}
}
Respuesta GraphQL
{
"data": {
"usuario": {
"nombre": "Ana",
"email": "ana@ejemplo.com",
"pedidos": [
{ "id": 100, "total": 1500 },
{ "id": 101, "total": 900 }
]
}
}
}
Ventajas
- El cliente pide exactamente lo que necesita.
- Reduce la cantidad de llamadas a la API.
- Muy eficiente en aplicaciones con muchas relaciones (redes sociales).
- Autodocumentación y tipado estricto (schema).
Desventajas
- Requiere más esfuerzo en la configuración del servidor.
- Puede generar consultas muy complejas y pesadas.
- No siempre es la mejor opción para APIs simples.
5 Comparación REST vs SOAP vs GraphQL
- Formato de datos: REST → JSON (a veces XML); SOAP → solo XML; GraphQL → JSON.
- Complejidad: REST = simple; SOAP = complejo; GraphQL = medio.
- Contrato: REST = no estricto; SOAP = WSDL estricto; GraphQL = schema con tipado fuerte.
- Flexibilidad: REST = limitada; SOAP = baja; GraphQL = muy alta.
- Seguridad: REST = HTTPS, JWT; SOAP = WS-Security, SSL; GraphQL = HTTPS, JWT.
- Overfetching/Underfetching: REST = sí, posible; SOAP = menos probable (contrato fijo); GraphQL = no, el cliente define.
- Casos de uso: REST = web, móviles, microservicios; SOAP = entornos corporativos, banca, seguros; GraphQL = aplicaciones modernas y frontends dinámicos.
6 ¿Cuándo usar cada arquitectura?
REST
- La mejor opción por defecto.
- Ideal para APIs públicas, móviles, microservicios.
- Fácil de aprender y de usar.
SOAP
- Cuando se necesitan transacciones seguras y estándares corporativos.
- En sistemas bancarios, seguros, e‑government.
- Útil si ya existe infraestructura basada en SOAP.
GraphQL
- Cuando el frontend necesita flexibilidad en la obtención de datos.
- Ideal para aplicaciones con relaciones complejas (redes sociales, dashboards).
- Cuando se busca reducir el número de requests al servidor.
7 Conclusión del capítulo
- REST: estándar actual, simple y eficiente.
- SOAP: legado robusto, usado en entornos críticos con contratos estrictos.
- GraphQL: moderno, flexible y potente, evita problemas de REST en consultas complejas.
👉 En resumen: usa REST como opción general; considera SOAP si trabajás en sistemas legados empresariales; considera GraphQL si tu aplicación necesita gran flexibilidad y optimización en consultas.