Introducción
EXPOSITORES
● Gustavo
● Junihor
TABLA DE CONTENIDO
1. ¿Qué es GraphQL?
2. ¿Cómo funciona?
3. Ventajas
4. Implementación
5. Live coding
6. Preguntas
¿Qué es GraphQL?
GraphQL es un query language creado por Facebook en 2012 que proporciona una
interfaz común entre el cliente y el servidor para la obtención y manipulación
de datos.
Es decir, un lenguaje de consultas para APIs (No bases de datos). En ese
sentido, es independiente de la base de datos y puede usarse con cualquier
tipo de DB o incluso sin ninguna.
La estructura de los datos no está hardcodeada como en las API REST
tradicionales; esto hace que la recuperación de datos del servidor sea más
eficiente para el cliente.
¿Cómo funciona?
Sistema de tipos: GraphQL trabaja con un sistema propio de tipos que permite describir a
una API con tipos de datos. Las estructuras de datos definidas de este modo son las que
crean el marco para las consultas. Cada tipo consta de uno o varios campos que, a su vez,
contienen sus propios tipos de datos. Este sistema individual sirve a GraphQL como punto
de orientación para validar consultas y poder rechazar las erróneas.
Entorno de tiempo de ejecución: por último, GraphQL también ofrece distintos entornos de
tiempo de ejecución para servidores para llevar a cabo consultas GraphQL. Este es el
propósito de las bibliotecas disponibles para distintos lenguajes de programación, por
ejemplo, Go, Java, JavaScript, PHP, Python o Ruby, que otorgan una gran libertad al
usuario a la hora de elegir el lenguaje de su API GraphQL. No obstante, el entorno de
tiempo de ejecución es exclusivamente responsable de la conversión (análisis) y validación
de las consultas, además de la serialización de las respuestas (conversión del objeto en
un orden correspondiente de bits). Guardar y calcular los datos (por ejemplo, en un banco
de datos) corresponde al ámbito de funciones de tu aplicación web.
Comparativa con REST
REST:
● Es solo una convención: Es una manera de comunicarse entre el servidor y cliente,
cada uno tiene sus reglas.
● El servidor expone recursos: Los clientes se tienen que adecuarse a como están
expuestos.
● Hace overfetching: Envía más información de la que se necesita.
● Múltiples request por vista: Muy costoso en performance, básicamente es una
aplicación en blanco que aún no ha cargado datos o tiene custom endpoints.
● Documentación ajena al desarrollo: No hay un estándar por lo que depende mucho del
desarrollador para mantenerla.
GraphQL:
● Lenguaje tipado y validable: Le damos una forma de lo que recibe y lo que devolvemos,
Además de agregarle seguridad.
● El Cliente define que recibe: Haciendo una consulta, de la estructura que se define
como respuesta.
● Envía lo necesario: Se tiene control total de las respuestas que se esperan del
servidor.
● Hace un solo request por vista: Se maneja un solo row, prácticamente en solo request
puedes mandar todo lo que necesitas.
Implementación
Live Coding