GraphQL vs REST: cuál conviene para tu próximo proyecto

Si ya entendiste qué es una API REST, la siguiente pregunta natural es: ¿qué es GraphQL y por qué tantos proyectos nuevos lo eligen?

1. El problema concreto que resuelve GraphQL

Con REST, cada endpoint devuelve una estructura fija de datos. Si necesitás el nombre de un usuario pero el endpoint también te devuelve su dirección, teléfono y 15 campos más que no usás, igual los recibís todos: es información de más que viaja innecesariamente. Y si necesitás datos de dos recursos distintos (usuario y sus pedidos), a veces hay que hacer dos pedidos separados.

2. Cómo lo resuelve GraphQL

Con GraphQL, vos pedís exactamente los campos que necesitás, ni uno más: «dame el nombre del usuario y el total de sus últimos 3 pedidos», en un solo pedido, y recibís exactamente esa estructura, sin campos de sobra. Es como pedir en un restaurante a la carta en vez de un menú fijo con platos que no elegíste.

3. Cuándo REST sigue siendo mejor opción

REST es más simple de entender, documentar y cachear (guardar temporalmente respuestas para no repetir el mismo pedido), lo que lo hace ideal para APIs públicas donde muchos desarrolladores externos van a integrarse, o para proyectos chicos donde la simplicidad pesa más que la flexibilidad de las consultas.

4. Cuándo GraphQL tiene ventaja real

Cuando tenés pantallas complejas que necesitan combinar datos de múltiples fuentes distintas (típico en apps móviles con conexión limitada, donde minimizar el tamaño de cada pedido importa mucho), o cuando distintas partes de tu equipo necesitan formas muy distintas de consultar los mismos datos sin tener que crear un endpoint nuevo para cada caso.

5. ¿Hace falta elegir uno solo?

No necesariamente. Muchas empresas grandes usan ambos según el caso: REST para integraciones públicas simples y estábles, GraphQL para las pantallas internas complejas de su propia aplicación. Para tu próximo proyecto, si es chico y directo, REST sigue siendo la opción de menor fricción; si anticipás pantallas con datos complejos y variables, vale la pena invertir el tiempo extra de aprender GraphQL.