ENES

GraphQL

Un lenguaje de APIs donde la app pide justo los campos que necesita, en un solo pedido.

Una app manda una sola consulta pidiendo el nombre de un usuario y sus dos últimos pedidos a un único endpoint, que los junta de tres fuentes y devuelve exactamente esa forma

GraphQL es una forma de armar APIs en la que el cliente escribe una consulta (query) que describe exactamente los datos que quiere, y el servidor responde con JSON con esa misma forma. Se creó en Facebook en 2012 para alimentar sus apps móviles, se publicó en 2015 y hoy lo mantiene la GraphQL Foundation, parte de la Linux Foundation.

Comparalo con una API REST. Para mostrar una pantalla de perfil, una app REST quizás llama a /users/7, después a /users/7/orders, después a /orders/91/items, y recibe un montón de campos que nunca muestra. Con GraphQL manda un solo pedido a un único endpoint, normalmente /graphql, diciendo "usuario 7: nombre, y los dos últimos pedidos con su total", y recibe solo eso. Así evita el over-fetching (traer de más) y el under-fetching (necesitar muchas idas y vueltas), algo que pesa en conexiones móviles lentas.

Detrás del endpoint hay un schema (esquema): una descripción tipada de cada objeto y campo que ofrece la API, que las herramientas usan para autocompletar y validar consultas antes de correrlas. Cada campo lo completa una función chica llamada resolver, que puede leer de una base de datos, de un servicio REST o de lo que sea. La flexibilidad tiene costos: cachear es más difícil que con URLs simples, y una consulta descuidada puede pedir tantos datos anidados que sobrecargue el servidor, así que las APIs en producción limitan la profundidad y el costo de las consultas.

Para quedarse

Para seguir leyendo

Términos relacionados

Más de Software