Descripción general del libro
El libro es de extensión reducida, consta de solo 7 capítulos. Incluye algunas imágenes, aunque no muchas. Es bastante fácil de leer y se avanza rápidamente.
Resumen breve de los capítulos
Los dos primeros capítulos son puramente teóricos. Describen qué es GraphQL, cuándo y por quién fue inventado, y dónde puede utilizarse. También discuten sus ventajas y desventajas en comparación con REST, su sintaxis, principios y más aspectos relacionados. Un capítulo completo de estos dos está dedicado a la teoría de grafos. Aborda vértices, nodos, la historia de la teoría de grafos, los puentes de Königsberg, los ciclos eulerianos, ejemplos de grafos en programación (como el árbol DOM más simple en un navegador) y información similar.
Alrededor de la página 50 (de un total de 240), el libro profundiza en GraphQL. Inicialmente, lo compara con SQL. Luego, revisa herramientas y plataformas en línea donde se puede practicar con GraphQL. Se discuten en detalle la sintaxis y los principales tipos de consultas, así como los fragmentos como una forma de reutilizar partes del código.
El siguiente capítulo trata sobre el Esquema de GraphQL. Aquí se describen en detalle los tipos de datos, su definición y uso. Además, se cubre la validación, así como las relaciones (uno a uno, uno a muchos, muchos a muchos). También se explican con cierto detalle las interfaces y los argumentos, junto con la filtración y la paginación.
El capítulo sobre la API de GraphQL se centra en un ejemplo práctico de trabajo con fotos utilizando GraphQL y JavaScript. Describe todo el proceso, desde la instalación de apollo-server y apollo-server-express hasta la conexión con MongoDB. Se detallan la configuración y los ajustes básicos de todo el software instalado.
Mientras que el capítulo anterior se enfocaba en la construcción del servidor, este se centra en el cliente (dentro del mismo ejemplo de carga de imágenes). Se elige Apollo Client como la implementación del cliente. Para hacer la tarea más compleja, el autor demuestra cómo integrar GraphQL con React, y, para un ejemplo más realista, se utiliza autenticación y almacenamiento en caché.
El último capítulo concluye el proyecto iniciado anteriormente e introduce conceptos aún más avanzados, como las suscripciones y la carga de archivos en tiempo real. También se presta atención a los problemas de seguridad: se destacan los problemas relacionados con la profundidad y la complejidad de las consultas.
Opinión
GraphQL es una buena alternativa al popular enfoque REST. Este libro introduce el nuevo estándar de transferencia de datos utilizando el lenguaje de consulta GraphQL como ejemplo. Proporciona información introductoria sobre por qué es necesario, qué problemas resuelve y un poco sobre la teoría de grafos, antes de sumergirse en los detalles y la sintaxis de GraphQL. Mi introducción a GraphQL comenzó con este libro, y no encontré dificultades al leerlo. El libro me pareció bastante comprensible y directo, por lo que puedo recomendarlo a otros.