CodeWithBotina
17 mar 2026 4 min de lectura

Adiós al Over-fetching: Qué es GraphQL y por qué está revolucionando las APIs

Adiós al Over-fetching: Qué es GraphQL y por qué está revolucionando las APIs

Adiós al Over-fetching: Qué es GraphQL y por qué está revolucionando las APIs

Bienvenidos de nuevo a Code With Botina. En nuestros posts anteriores, hablamos maravillas de la arquitectura Cliente-Servidor y de las peticiones HTTP que dan vida a las APIs REST. Pero seamos honestos: REST tiene sus problemas, especialmente cuando las aplicaciones crecen y se vuelven complejas.

Hoy vamos a hablar de GraphQL, la tecnología creada por Facebook (Meta) que llegó para cambiar las reglas del juego y solucionar los mayores dolores de cabeza de los desarrolladores Frontend y Backend.


El Problema con REST: Demasiada o muy poca información

Imagina que estás construyendo la pantalla de perfil de un usuario para tu aplicación móvil. Solo necesitas mostrar su nombre y su foto de perfil.

En una API REST tradicional, harías una petición GET a /api/usuarios/1. ¿El problema? El servidor te devuelve un archivo JSON gigante con el nombre, la foto, el correo electrónico, la dirección, la fecha de nacimiento, el historial de compras y el número de teléfono.

A esto se le llama Over-fetching (Sobrecarga de datos). Estás descargando un montón de datos que no necesitas, desperdiciando ancho de banda y batería del dispositivo del usuario.

Por otro lado, si también quieres mostrar los últimos 3 posts de ese usuario, la API REST tal vez te obligue a hacer otra petición a /api/usuarios/1/posts. A esto se le llama Under-fetching (Falta de datos), porque una sola petición no fue suficiente para armar tu interfaz.


La Solución: ¿Qué es GraphQL?

GraphQL es un lenguaje de consultas para tu API. En lugar de tener múltiples rutas (endpoints) como en REST (/usuarios, /posts, /comentarios), GraphQL tiene un solo endpoint (generalmente /graphql).

La magia radica en que el Cliente (el Frontend) tiene el control absoluto. En lugar de que el servidor decida qué datos enviar, el cliente le dice al servidor exactamente qué datos necesita, y el servidor le devuelve solo eso. Ni más, ni menos.

Ejemplo Práctico de Código

Siguiendo nuestro ejemplo anterior, si solo queremos el nombre, la foto y los títulos de los últimos posts, enviaríamos esta consulta (Query) al servidor GraphQL:

query {
  usuario(id: "1") {
    nombre
    fotoPerfil
    posts(limite: 3) {
      titulo
    }
  }
}

¿Y qué nos devuelve el servidor? Exactamente la misma estructura en formato JSON:

{
  "data": {
    "usuario": {
      "nombre": "Botina",
      "fotoPerfil": "[https://img.com/foto.jpg](https://img.com/foto.jpg)",
      "posts": [
        { "titulo": "Qué es una API" },
        { "titulo": "Edge Computing Explicado" },
        { "titulo": "El daño de los falsos docentes" }
      ]
    }
  }
}

¡Boom! Una sola petición, cero datos basura descargados.


¿Por qué GraphQL es tan relevante en la actualidad?

  1. Rendimiento en Dispositivos Móviles: Al descargar solo lo estrictamente necesario, las aplicaciones cargan mucho más rápido y consumen menos datos móviles.
  2. Desarrollo Ágil: En REST, si el equipo de Frontend necesita un dato nuevo en la pantalla, el equipo de Backend tiene que modificar el endpoint. En GraphQL, el Frontend simplemente agrega un campo más a su consulta y listo. ¡Independencia total!
  3. Fuertemente Tipado: GraphQL tiene un "Esquema" (Schema) estricto. El Frontend sabe exactamente qué tipos de datos existen (String, Int, Boolean), lo que hace que herramientas como el autocompletado en el editor de código funcionen de maravilla y se eviten miles de bugs.

Conclusión

REST no va a desaparecer, sigue siendo excelente para servicios simples o microservicios internos. Pero para aplicaciones complejas, modernas y orientadas al usuario final, GraphQL es el rey indiscutible. Nos devuelve el control y optimiza nuestras aplicaciones al máximo.

¿Alguna vez has sufrido peleando con una API REST que te devolvía demasiada basura? ¡Déjalo en los comentarios!


Si te apasiona la arquitectura de software y el buen código, asegúrate de seguir explorando Code With Botina.

1 Me gusta 0 No me gusta 1 total

Cargando reacciones...

Comentarios (0)

Cargando sesión...

Aún no hay comentarios. Sé el primero en comentar.

Volver a todas las publicaciones