Wikinventia — Atlas de descubrimientos e inventos · Era digital

Lenguaje de consulta para APIs (GraphQL) — Lee Byron, Nick Schrock y Dan Schafer

2015 d.C. · Transmisión: Global
ComputaciónSistemaNorteamericana

En 2012 Facebook desarrolla internamente GraphQL para resolver un problema concreto de sus aplicaciones móviles: las APIs REST existentes obligaban a realizar múltiples peticiones para obtener datos relacionados entre sí, y devolvían grandes cantidades de campos innecesarios (over-fetching) o insuficientes (under-fetching), lo que penalizaba el rendimiento en conexiones móviles lentas. GraphQL invierte el modelo: en lugar de que el servidor defina la forma de los datos que devuelve cada endpoint, es el cliente quien especifica exactamente qué campos necesita en una única consulta, y el servidor responde solo con esos datos. El sistema se basa en un esquema tipado que describe todos los tipos de datos disponibles y sus relaciones, actuando como contrato explícito entre cliente y servidor. Facebook lo usa internamente desde 2012 y lo publica como especificación abierta en septiembre de 2015, liderado por Lee Byron, Nick Schrock y Dan Schafer. La especificación se transfiere en 2019 a la GraphQL Foundation, bajo la Linux Foundation, asegurando su neutralidad respecto a cualquier empresa. La ruptura respecto a REST es arquitectónica: REST organiza la API en torno a recursos identificados por URLs (un endpoint por recurso), mientras que GraphQL expone un único endpoint y delega en el cliente la composición de la consulta. Esto elimina la necesidad de versionar APIs y reduce drásticamente el número de peticiones de red en aplicaciones con datos complejos y relacionados. GraphQL es adoptado como estándar de facto por GitHub (2016), Twitter, Shopify, Airbnb y la mayoría de plataformas con APIs públicas de alta complejidad.

InstituciónFacebook, Inc. / GraphQL Foundation (Linux Foundation)
Región históricaEE.UU.
Fuente primariaByron, L.; Schrock, N.; Schafer, D. — GraphQL Specification, versión de octubre 2015. Disponible en: spec.graphql.org
Fuente secundariaGraphQL Foundation — GraphQL: A query language for your API (graphql.org). Linux Foundation project desde 2019.
Lengua originalinglés
Ver esta entrada en el atlas interactivo → Ver en el grafo →