English
Polski
Français
Deutsch
日本
Nederlands
Dansk
GraphQL es una forma de comunicarse con las API creada como alternativa a REST.
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.
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.
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.
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.
Los elementos básicos de GraphQL son: la mutación:
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.
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.