Qué es GraphQL y por qué deberías dejar de utilizar REST

Author
By Darío Rivera
Posted on 2020-02-19 in Laravel

GraphQL es un lenguaje open source de consulta y manipulación de datos en APIs. Este lenguaje no es simplemente una alternativa al estilo de arquitectura REST, sino que fue creado en base a las debilidades que tenía REST con respecto a la transferencia de datos entre sistemas de computadoras.

GraphQL fue creado por Facebook en 2012 y su release público no fue sino hasta 2015. Después de esto se transfirió a una organización recién creada denominada GraphQL Foundation. Vamos a ver entoneces las ventajas y desventajas de este nuevo lenguaje de consulta y manipulación de datos sobre REST.

Recursos parciales

Una de las formas de mejorar el performance sobre una API es enviar y recibir solamente aquella porción de información sobre la que estamos interesados (Google Tasks API - Working with partial resources). Y es aquí en donde GraphQL tiene una gran ventaja sobre REST. Con GraphQL puedes inciar que campos necesitas en tu respuesta y obtener extactamente aquello que solicitas.

Como sabes, un gran número de APIs construídas en REST envían todas la información sobre una entidad aún cuando el cliente solo necesite unos pocos campos. Esto no significa que en REST sea imposible realizar este tipo de optimizaciones, pero por lo general, tomará más tiempo desarrollar dicha funcionalidad cuando GraphQL ya lo hace de manera nativa.

GET /api/powerstats HTTP/1.1

{
    [
      "name": "Batman",
      "intelligence": "100",
      "strength": "26",
      "speed": "27",
      "durability": "50",
      "power": "47",
      "combat": "100"
    ]
}
{
  hero {
    name
    intelligence
  }
}
{
  "data": {
    "hero": {
      "name": "Batman",
      "intelligence": "100"
    }
  }
}

Si te ha gustado este artículo puedes invitarme a tomar una taza de café


Acerca de Darío Rivera

Author

Ingeniero de desarrollo en PlacetoPay , Medellín. Darío ha trabajado por más de 6 años en lenguajes de programación web especialmente en PHP. Creador del microframework DronePHP basado en Zend y Laravel.

Sólo aquellos que han alcanzado el éxito saben que siempre estuvo a un paso del momento en que pensaron renunciar.