Logo de Dallonses

GraphQL

¿Qué es GraphQL?

GraphQL es un lenguaje de consulta para APIs y un runtime para ejecutar esas consultas, desarrollado por Meta y liberado como código abierto en 2015. Ofrece una alternativa a REST al dejar que los clientes pidan exactamente los datos que necesitan, ni más ni menos.

La diferencia con REST es estructural. En una API REST, cada endpoint devuelve una forma fija, así que conseguir todo lo que una pantalla necesita suele significar golpear varios endpoints y descartar partes de cada respuesta. GraphQL normalmente expone un único endpoint, y el cliente describe la forma de la respuesta dentro de la propia consulta. Eso elimina el over-fetching, donde recibes datos que nunca usas, y el under-fetching, donde una petición no basta. Una pantalla móvil que muestra el nombre de un usuario, sus tres últimos pedidos y sus puntos de fidelidad puede obtener precisamente esos campos en un solo viaje en lugar de tres. Debajo hay un esquema fuertemente tipado que documenta la API y alimenta el tooling como el autocompletado y la validación, y permite que la API evolucione añadiendo campos sin romper las consultas en las que los clientes ya se apoyan.

GraphQL se gana su sitio en productos con datos complejos e interconectados o con varios clientes consumiendo un único backend. Una web, una app móvil y una integración con un partner pueden consultar cada una el mismo grafo por la porción que necesitan, algo más difícil de coordinar cuando cada cliente depende de respuestas REST fijas.

GraphQL en Dallonses

Cuando un producto tiene datos ricos y más de un cliente tirando de ellos, GraphQL suele ser la base más limpia. Recurrimos a él donde un único grafo bien tipado ahorra a una web y a una app móvil tener que negociar cada una sus propios endpoints, y donde el esquema se convierte en documentación viva en la que confía todo el equipo.

Encaja con cómo abordamos la integración de APIs y un build API-first, donde el contrato entre backend y frontend se define pronto y se respeta. Esa disciplina deja a los clientes añadir nuevas superficies más adelante, una integración con un partner o una nueva app, sin reescribir la capa que hay debajo.

¿Tienes datos alimentando varias apps y estás cansado de la proliferación de endpoints? Diseñemos el grafo.

Habla con nosotros sobre APIs

Servicios relacionados


¿Listo para trabajar juntos?

Reservar una reunión
Aymón sosteniendo una revista Tools frente a su cara
Ari trabajando en una laptop al aire libre rodeado de plantas
Vista superior de un escritorio de madera con teclado, ratón y auriculares
Ilustración dibujada a mano de una mano chasqueando los dedos
Nico recostado contra un dispensador de agua junto a un extintor de incendios
Primer plano de una computadora abierta con placa de circuito y componentes en un escritorio de madera
Bernat y Andreu colaborando en un escritorio con monitores y una laptop
Ilustración dibujada a mano de una mano abierta saludando
Aymón sosteniendo una revista Tools frente a su cara
Ari trabajando en una laptop al aire libre rodeado de plantas
Vista superior de un escritorio de madera con teclado, ratón y auriculares
Ilustración dibujada a mano de una mano chasqueando los dedos
Nico recostado contra un dispensador de agua junto a un extintor de incendios
Primer plano de una computadora abierta con placa de circuito y componentes en un escritorio de madera
Bernat y Andreu colaborando en un escritorio con monitores y una laptop
Ilustración dibujada a mano de una mano abierta saludando