0%
Inicio 9 Glossary Item 9 GraphQL
« Back to Glossary Index

Nivel Principiante

Imagina que quieres comprar ropa de una tienda en línea. Con las formas de comprar tradicionales, tendrías que ir a una sección para ver la ropa, a otra para ver los colores y a otra para ver los precios. GraphQL es como si pudieras ir a la tienda y pedir exactamente lo que quieres en un solo viaje: «Quiero la ropa, solo en color azul y el precio». Es una forma de pedir datos de internet de manera muy precisa, para no obtener información de más ni de menos.

Nivel Intermedio

GraphQL es un lenguaje de consulta y manipulación de datos para APIs, y también es un runtime para ejecutar esas consultas. Fue desarrollado por Facebook para resolver las ineficiencias de las APIs RESTful tradicionales, como el over-fetching (obtener más datos de los necesarios) y el under-fetching (obtener datos insuficientes, lo que requiere múltiples peticiones).

Con GraphQL, el cliente (el navegador o la aplicación) es quien define la estructura de los datos que necesita. El servidor GraphQL, por su parte, solo responde con esa información específica. Esto no solo hace que las APIs sean más rápidas y eficientes, sino que también las hace más flexibles y fáciles de evolucionar, ya que los desarrolladores del backend no tienen que crear nuevos endpoints para cada nuevo requerimiento del frontend.

Nivel Avanzado

Técnicamente, GraphQL opera como una capa de abstracción entre el cliente y el servidor. Se define un esquema GraphQL en el servidor, que actúa como un contrato que describe todos los datos y operaciones disponibles para la API. Este esquema utiliza un sistema de tipos para definir los objetos, los campos y las relaciones entre ellos.

Las operaciones principales de GraphQL son:

  • Queries (Consultas): Se utilizan para leer datos. El cliente envía una consulta que es una cadena de texto estructurada que especifica exactamente qué campos y relaciones desea.
  • Mutations (Mutaciones): Se utilizan para modificar datos (crear, actualizar o eliminar). Las mutaciones son similares a las consultas, pero se ejecutan para realizar un cambio en el servidor.
  • Subscriptions (Suscripciones): Permiten a los clientes recibir actualizaciones en tiempo real a través de una conexión WebSocket cuando los datos cambian en el servidor.

El servidor GraphQL recibe la consulta del cliente, la valida contra el esquema y ejecuta una serie de «resolutores» para obtener los datos de una o varias fuentes de datos (bases de datos, APIs REST, etc.) antes de responder con una estructura JSON que coincide con la forma de la consulta. La principal ventaja de GraphQL es que un solo endpoint de API puede servir para todas las necesidades del cliente, lo que simplifica la arquitectura del backend y reduce la cantidad de solicitudes HTTP, optimizando el rendimiento y la experiencia del usuario, especialmente en dispositivos móviles con conexiones lentas.

« Volver al índice del glosario