Qué es GraphQL y por qué deberías dejar de utilizar REST
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"
}
}
}