Líderes de opinión
GraphQL – Cambiando y Mejorando la Forma en que las Aplicaciones se Comunican

No pasarán muchos años antes de que la próxima generación esté comprando criptomonedas y verificando su saldo de unidad de confianza en el lobby de Fortnite entre partidas. Esto será posible gracias a numerosos avances tecnológicos.
El que estamos discutiendo hoy es la forma en que se transfiere la data (se lee, se actualiza, se agrega/elimina) entre aplicaciones y las empresas que las poseen. Las interfaces de programación de aplicaciones (API) son la arquitectura que define esta comunicación de datos y, a medida que estos estándares han evolucionado, los requisitos de procesamiento y almacenamiento de datos se han vuelto menos arduos.
El líder en la manada en términos de “uso de recursos ligero” es GraphQL, un lenguaje de consulta y manipulación de datos de código abierto. La base de su ecosistema es su especificación y una colección de herramientas que se ha creado alrededor de ella.
No es nuevo – el tiempo pasa rápido. Facebook lo desarrolló en 2012 y lo utilizó solo internamente para el desarrollo de aplicaciones móviles. En 2015 se “abrió el código” y hoy es supervisado por la Fundación GraphQL (https://graphql.org/foundation/) que supervisa su desarrollo posterior.
¿Por qué estoy escribiendo sobre ello ahora? Una hoja de ruta típica para la adopción de una tecnología seguirá los siguientes puntos de adopción: 1) aficionados/proyectos personales, 2) implementación en varios lenguajes, 3) implementaciones en startups y empresas pequeñas, 4) empresas de tamaño mediano y utilizadas en el desarrollo de productos, 5) grandes corporaciones y gigantes tecnológicos.
GraphQL ha alcanzado el nivel 5. Actualmente se utiliza en GitHub, Pinterest, Shopify, Microsoft, por nombrar algunos, y más recientemente, a partir de marzo de 2022, Salesforce.
Al buscar una forma de recuperar datos de manera más eficiente de Salesforce, me encontré con su documentación de GraphQL y comencé a leer y a buscar formas de implementarlo.
¿Cómo difiere de una API REST tradicional?
- Una de las principales ventajas es que con GraphQL puedes consultar y solo obtener los datos específicos que necesitas. Si solo quieres dos campos relacionados con un incidente de cliente específico, entonces eso es lo que obtienes. Una API REST tradicional te devolvería todos los campos asociados con el incidente. Eso podría ser más de 100 campos. Ahora debes hacer algo con todos esos datos que no querías desde el principio. Esto se conoce como exceso de datos (también es un problema la falta de datos).
- Lo anterior hace que GraphQL sea más rápido que otras metodologías de API al devolver datos.
- GraphQL es un lenguaje fuertemente tipado, lo que significa, entre otras cosas, que los errores de código se detectan antes de que se ejecute el programa y no durante su ejecución.
- Se han creado una gran cantidad de herramientas alrededor de GraphQL, lo que lo ha hecho muy amigable para los desarrolladores.
- GraphQL tiene un solo punto de conexión, a diferencia de la API REST que tiene múltiples puntos de conexión. Esto significa que todos tus datos se pueden recuperar en una sola solicitud.
Dos lados de la moneda: solicitante (cliente) y proveedor (host de GraphQL)
He estado mirando GraphQL hasta ahora desde la perspectiva de la “solicitud” de datos. Donde una empresa como Salesforce o Microsoft ha configurado una API de GraphQL que puedes utilizar para consultar y manipular datos (leer, actualizar, agregar).
Por ejemplo, si quisiéramos incluir datos de Salesforce relacionados con incidentes de clientes en un portal de clientes, la forma más eficiente de hacerlo sería solicitar los datos exactos que estamos buscando a través de una consulta de GraphQL desde el portal al servidor de GraphQL de Salesforce. Obtendrás exactamente los datos que deseas, sin falta ni exceso de datos, y como resultado, no se requerirá procesamiento ni almacenamiento de datos adicionales.
El otro lado de la moneda es la organización que configura la arquitectura de GraphQL para que tus clientes tengan un método eficiente para acceder a los datos que desean.
Al construir la API de GraphQL, una organización está creando un modelo que integra todos sus sistemas en un solo modelo. Unifica estos sistemas y, una vez hecho, elimina la complejidad del sistema subyacente. Una vez que se completa el trabajo, consultar los datos se vuelve fluido a través de la API.
Cuando comparo aplicaciones o proveedores, busco qué funciones me ofrecen para recuperar mis datos de ellos. No quiero tener que enviarles un correo electrónico ni depender de informes predefinidos rígidos. Quiero poder “conectar” mis datos y consultarlos de manera flexible y oportuna. Si se reduce a dos aplicaciones/proveedores y están igualmente empatados en otros puntos de comparación, y uno ofrece una API REST o una API de GraphQL, sin duda elegiré la que tenga la API.












