GraphQL: Una rápida introducción

Jules
3 min readDec 28, 2020

--

Mientras más te adentras a la comunidad del código abierto, con más frecuencia empiezas a descubrir cosas nuevas e interesantes. Usualmente es difícil empezar con algo nuevo si no sabes el camino correcto que seguir. Pero eso mismo existen los retos, el mío de este mes en el Encora Academy ha sido aprender un poco de GraphQL.

GraphQL es un lenguaje de consulta y un runtime para APIs. Las siglas API vienen del inglés Application Programming Interface. En español sería Interfaz de Programación de Aplicaciones.

GraphQL tiene la característica de brindar a los clientes exactamente los datos que solicitan y nada más. Este mismo esta diseñado para que las APIs sean fexibles y fáciles de usar para los mimos desarrolladores. La alternativa a REST, GraphQL permite crear peticiones que extraen datos de diferentes fuentes dentro de la API en una sola llamada.

¿Por qué GraphQL?

Las API RESTful siguen un enfoque claro de servicios y controladores muy bien estructurados. Sin embargo, cuando los datos llegan a ser más complejos, las rutas se hacen más largas. A veces, no es posible obtener datos con una sola solicitud, se tienen que hacer varias; haciendo el sistema un poco más complicado. Aquí es donde GraphQL resulta útil. GraphQL estructura los datos en forma de gráfico con su sintaxis de consulta para recorrer, recuperar y modificar datos.

Características de GraphQL

GraphQL comparte algunas similitudes con REST. Permite a los clientes solicitar y administrar datos de API a través de un protocolo de petición-respuesta, normalmente usando el protocolo HTTP. Sin embargo, la forma en que se organizan, solicitan y regresan los datos es muy diferente.

GraphQL proporciona las siguientes operaciones para trabajar con datos:

  • Consultas: permite a los clientes solicitar datos (similar a una solicitud GET en REST).
  • Mutaciones: permite a los clientes manipular datos (es decir, crear, actualizar o eliminar, similar a POST, PUT o DELETE, respectivamente).
  • Suscripciones: Permita que los clientes se suscriban a actualizaciones en tiempo real.

Ejemplo

Un pequeño ejemplo introductorio por parte de la organización de GraphQL de como utilizar este servicio de consultas es el siguiente:

Un servicio GraphQL se crea definiendo tipos y campos en estos mismo, luego proporcionando funciones para cada campo en cada tipo. Por ejemplo, un servicio GraphQL que nos dice quién es el usuario que inició sesión (yo), así como el nombre de ese usuario, podría verse así:

Junto con funciones para cada campo en cada tipo:

Una vez que se está ejecutando un servicio GraphQL (generalmente en una URL en un servicio web), puede recibir consultas GraphQL para validar y ejecutar. Una consulta recibida se verifica primero para asegurarse de que solo se refiere a los tipos y campos definidos, luego ejecuta las funciones proporcionadas para producir un resultado.

Por ejemplo la consulta:

Da el siguiente JSON:

Conclusión

GraphQL es una tecnología nueva y emocionante, pero es importante comprender las complicaciones antes de tomar decisiones arquitectónicas importantes. Algunas API, como las de menor complejidad o de un tamaño en identidades relativamente pequeño puede no ser de muchas utilidades para un servicio como GraphQL. Sin embargo, las aplicaciones con muchas entidades diferentes, como las aplicaciones de comercio electrónico, o un ejemplo muy conocido las APIs de GitHub, Instagram o Facebook puede servir como anillo al dedo.

GraphQL es una herramienta poderosa y hay muchas razones para elegirla en nuestros proyectos. Pero como en todos los proyectos de tecnología, debemos escoger lo que mas se aplique a nuestra solución.

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

Jules
Jules

Written by Jules

In this house we love, cherish, respect, and use the oxford comma.

No responses yet

Write a response