GraphQL es lo mas maravilloso del mundo que le puede pasar a un frontend

Antes de comenzar a escribir esta breve historia, me gustaría destacar que hay dos cosas en el desarrollo web que me apasionan y que me quitan horas de sueño, una es aprender nuevas tecnologías o técnicas y la otra es aplicar esas cosas que estoy aprendiendo y experimentando en desarrollos que pueden llegar a producción. Bueno, eso me paso hace poco con esta tecnología llamada GraphQL y te voy a contar porque.

Una de las cosas que he estado haciendo últimamente en mi trabajo y si lo pudiéramos separar en porcentajes es 60% frontend y 40% backend, por así decirlo me gusta mucho lo que hago desde el lado del cliente, entender el diseño de las aplicaciones y como eso conversa con el usuario final. Cosas como “frontear” (o maquetar) para luego aplicar mucho Javascript y CSS (dos tecnologías con las que trabajo a menudo). La segunda parte que es el backend (el cual no la odio), pero como muchas veces y como suele pasar en el desarrollo y sobre todo si estás en un equipo pequeño (o sólo), es estar lidiando con cosas como bases de datos, lógica de negocio y cosas que tienen que ver mas con el servidor o implementaciones que se alejan del cliente.

Bajo la perspectiva anterior creo que nunca logré conciliar todo un stack que me supliera o dejara contento con lo que hacía, mi framework de preferencia es Vue donde todo se me ha hecho mas fácil desde el lado del cliente, pero del lado del servidor solo he hecho muy pocas cosas en Node, implementaciones básicas que siempre se conectaban a un servidor monolítico o alguna API Rest donde muchas veces hacer mejoras se volvía cada vez mas tedioso.

Apareció GraphQL ✨

Luego de mucho buscar y leer apareció GraphQL, el cuál me ayudó a avanzar considerablemente en esta brecha llamada cliente servidor.

GraphQL es básicamente un estándar Open Source con un poderoso query language para consumir datos, fue creado por Facebook por el año 2012 y ha sido mejorado, apoyado y adoptado sobre todo desde el mundo de las aplicaciones móviles nativas.

Pero lo que hace diferente a GraphQL y porque creo que le deberías dar una oportunidad es por toda la capacidad que puede entregar y agilizar nuestros proyectos versus una implementación bajo API Rest. Estas son algunas características a resumir que me gustaría destacar:

  • Tiene un lenguaje declarativo y estricto, esto lo hace único y permite estandarizar las peticiones que realizamos.
  • Té decides qué recursos consumir. No es necesario hacer múltiples peticiones para traer ciertos datos, esto permite hacer un uso limitado y un consecuente ahorro de ancho de banda.
  • Tiene un ecosistema bastante maduro, buena documentación y recursos para comenzar a usar en distintos lenguajes e infraestructuras.
  • Exploración de datos más cómoda y auto documentación. Herramientas como Grapiql te ayudan a disminuir tiempo valioso para conocer la estructura de datos que estás solicitando.

Backend as a service 🌥

Quizás esta es la mayor parte que me motivó a usar GraphQL y a escribir esto. La magia detrás de una aplicación en producción es tener un stack bien definido y sólido, además uno de los factores del proyecto que lanzamos con GraphQL es que los tiempos estaban muy acotadas, es por eso que llegamos a https://www.graph.cool

Graphcool es un backend as a service y provee un servicio en la nube suficiente para iniciar tu proyecto desde planes con costo 0. Es lo más parecido a usar Firebase o servicios similares, pero lo particular es que han sabido escalar dentro del mundo de GraphQL, tienen un buen ecosistema y muchas de las herramientas que están desarrollando están disponibles como Open Source https://github.com/graphcool además la documentación es muy amigable y super simple https://www.graph.cool/docs 👌

Esto es lo que uso actualmente y veremos cómo sigue funcionando, ya que como desarrollador este tipo de servicios calzan perfecto para levantar aplicaciones en corto tiempo y donde necesites ir escalando sin sacrificar horas en soporte y tiempo valioso en algún backend.

Empieza

Si quieres empezar hoy a usar esta maravillosa tecnología te invito a leer el sitio oficial http://graphql.org o este curso gratuito que te guiara paso a paso https://www.howtographql.com

Espero que esta experiencia te haya entregado una perspectiva o te ayude a empezar tu proximo proyecto con esta tecnología.