English

Polski

Français

Deutsch

日本

Nederlands

Dansk

Accede al Editor GraphQL
RECURSOS

¿Para qué sirve GraphQL?

GraphQL es una forma de comunicarse con las API creada como alternativa a REST.

01Un nuevo lenguaje de consulta

GraphQL es un lenguaje de consulta para APIs desarrollado por Facebook y su comunidad de desarrolladores. Se estrenó en junio de 2018, y ahora es una tecnología madura que ha obtenido un amplio reconocimiento en el mercado. Como resultado, goza de un gran reconocimiento y muchas empresas están optando por implementarlo. Para explicarte en qué se diferencia, tenemos que fijarnos en lo que sigue siendo más utilizado: REST y en qué se basa. A GraphQL se le suele llamar el sucesor de REST porque resuelve sus problemas clave. Como probablemente sepas, se basa en un tipo de diseño de sistema antiguo. Según éste, cada modelo de datos está disponible en una dirección distinta. Teniendo una tienda online de ropa, por ejemplo, podemos tener direcciones para el carrito, el almacén, los productos y muchas más.

Lenguaje de consulta GraphQL

02Consigue sólo lo que querías

De hecho, el número de estas direcciones nunca será pequeño, al contrario, crecerá con el sistema. Ten en cuenta que para casi cada dirección necesitas crear un conjunto de llamadas para gestionar las peticiones de obtener, publicar, poner o borrar. Esto dará como resultado un gran número de direcciones que mantener y una cantidad aún mayor de llamadas necesarias para obtener los datos. GraphQL funciona de una forma completamente distinta. Sólo tenemos una dirección, una única fuente de verdad, a la que podemos solicitar datos. Lo que obtengamos depende únicamente de nosotros y de cómo construyamos la consulta.

Consultas GraphQL

03Consultas flexibles

La característica clave de GraphQL es la posibilidad de realizar consultas flexibles en las que definimos exactamente qué datos de la API queremos obtener. Además, el lenguaje ofrece la posibilidad de crear consultas anidadas, lo que le hace ganar aún más ventaja sobre las API REST en estos aspectos.

Consultas GraphQL

04Plataforma agnóstica

Un punto de similitud entre REST y GraphQL es la independencia de la plataforma o del lenguaje de programación. Otra característica común es la idempotencia de las mismas operaciones. Tanto en la arquitectura REST como en GraphQL, operaciones como recuperar, modificar o eliminar pueden utilizarse repetidamente sin que cambie el resultado.

REST vs GraphQL

05Elementos básicos

Los elementos básicos de GraphQL son: la mutación:

  • consulta: una operación básica de obtención en GraphQL que nos permite obtener datos. la diferencia clave es que obtenemos exactamente los datos que solicitamos estructurando la consulta para obtener sólo lo que queremos
  • mutación: operación básica de manipulación de datos en GraphQL que nos permite crear, modificar o eliminar datos
  • esquema: la base de todo proyecto GraphQL, describe la lógica y las funcionalidades, está escrito en SDL (Lenguaje de Definición de Esquemas) y sus componentes principales son los tipos y los campos resolver: la función utilizada para conectar tu esquema GraphQL al backend, convierte las operaciones en datos y puede devolver cadenas, enteros, nulos y otros primitivos
  • resolver: resolver: la función utilizada para conectar tu esquema GraphQL al backend, convierte las operaciones en datos y puede devolver cadenas, enteros, nulos y otros primitivos
Mutaciones de GraphQL

06Lenguaje de definición de esquemas

GraphQL utiliza su propia sintaxis: SDL o Lenguaje de Definición de Esquemas. Se utiliza para especificar el esquema de una API y sus tipos y campos. Los tipos se declaran utilizando la palabra clave type y los campos se añaden entre paréntesis para cada tipo de objeto.

Esquemas GraphQL

07Comunidad en crecimiento

Aunque GraphQL todavía no es tan popular como REST, su comunidad está creciendo rápidamente. Ya ha tenido varios adoptantes importantes, como GitHub, Netflix, PayPal o Shopify. Es sólo cuestión de tiempo que le sigan más.

Comunidad GraphQL

GraphQL

  • Sin exceso ni defecto de obtención: GraphQL utiliza consultas flexibles o incluso anidadas que garantizan que obtienes exactamente y sólo lo que necesitas. No se necesitan múltiples llamadas ni se reciben datos en exceso, todo puede ser manejado por una consulta construida específicamente.
  • Un único punto finalDe forma similar, sólo necesitas un único punto final. La estructura de la consulta se encargará de obtener lo que necesites, cómo tengas organizados los datos es irrelevante, mientras construyas correctamente la consulta obtendrá todo lo que necesites incluso de un completo desorden.
  • Seguridad de tiposLos esquemas GraphQL utilizan un sistema de tipos fuerte, lo que significa que todas las API expuestas al cliente están escritas en el Lenguaje de Definición de Esquemas, que elimina las incoherencias de los datos y facilita mucho la localización de errores.

REST

  • Jerarquía: Las API REST utilizan Identificadores Uniformes de Recursos o URI para direccionar los recursos. Esto significa que todo sigue un enfoque jerárquico simple, que está bien para proyectos pequeños, pero puede causar muchos problemas en proyectos más grandes o complejos.
  • Múltiples idas y vueltas: Debido a la estructura jerárquica, una API REST suele tener varios puntos finales y, a su vez, el cliente necesita múltiples llamadas para obtener todos los datos necesarios.
  • Recogida excesiva o insuficiente: La estructura jerárquica y la falta de flexibilidad en las consultas hacen que las API REST suelan recoger demasiados datos innecesarios o necesiten varias llamadas para obtener todos los datos necesarios. Obviamente, esto afecta tanto al ancho de banda como al rendimiento, y suele agravarse cuanto mayor es la aplicación.

¿Listo para despegar?

Eleva tu trabajo con nuestro editor que combina un gráfico visual de primera clase, documentación y consola API

Cómo empezar con el Editor GraphQL