GraphQL es un lenguaje de consulta y manipulación de datos para APIs y un entorno de ejecución para realizar consultas de datos existentes. Es una alternativa al uso del consumo de Rest en arquitecturas de Microservicios.
Inicialmente fue desarrollado internamente por Facebook en el 2012 y posteriormente fue liberado en 2015. Ya en el 2018 se creó la Fundación GraphQL, alojada por la Fundación Linux.
Como podemos ver en los resultados publicados por StateofJS del 2020, siendo la coordenada X Opiniones y la Y Más Usados, es de las tecnologías con mejores opiniones, aunque sigue sin despuntar en el uso de los proyectos.
En los últimos años, en España, parecía que solo se reducía su utilización en startups y proyectos de innovación, pero en estos dos últimos años, grandes empresas la están incluyendo en sus arquitecturas. Aquellas plataformas donde integraban solo consumo por Rest, ahora están incluyendo en su roadmap (algunos ya lo tienen integrado) las consultas con GraphQL. Entre ellas, podríamos destacar soluciones de API Gateway con APIgee, o WSO2, e incluso su inclusión en soluciones DXP (Digital Experience Platform) o CMS como Liferay, Magnolia, etc.
Algunas empresas internacionales que podríamos destacar que lo están usando:
Algunas de sus características serían:
- Fácil utilización en arquitectura de Microservicios, headless, etc.
- Evita que se devuelvan cantidades excesivas de datos.
- Admite lectua, escritra, subscripción (actualizaciones en tiempo real).
- Compatible con más de 20 lenguajes php, js, c#, phython, scala, etc.
Ventajas de su utilización:
- Mantener separada la parte del backend de un proyecto, permitiendo además desarrollar un único servicio web, que será capaz de funcionar a través de diversas plataformas, como aplicaciones web o apps móviles iOS o Android.
- La posibilidad de ofrecer un servicio altamente escalable y con elevada disponibilidad.
Comparativa con Rest y gRPC:
Para la decisión de la utilización de esta tecnología, dependerá del tipo de arquitectura y el tipo de aplicaciones. Su objetivo nunca ha sido reemplazar las consultas Rest, sino venir a complementar el abanico de posibilidades. Con la necesidad de soluciones más cloud y escalables, además de la llegada del 5G, GraphQL va cogiendo más fuerza como la mejor alternativa.
Conoce al autor
Jesús Cuesta es specialist lead de Consultoría Tecnológica de Deloitte