Общее описание книги
Книга небольшого объема, состоит всего из 7 глав. Есть изображения, но их не очень много. Читается довольно легко и быстро.
Краткий обзор глав
Первые две главы сугубо теоретические. Они описывают, что такое GraphQL, когда и кем он был изобретён, где он может использоваться. Какие преимущества и недостатки имеет по сравнению с REST. Какой у него синтаксис, принципы и многое в этом же ключе. Из этих двух глав целая глава отведена теории графов. Разобраны вершины, узлы, история теории графов, Кёнигсбергские мосты, эйлеровы циклы, примеры графов в программировании (например, самое простое DOM-дерево в браузере) и подобная информация.
Примерно со страницы 50 (всего их, напомню, 240) начинается более плотное знакомство с GraphQL. Поначалу это сравнение с языком SQL. Далее разобраны инструменты и онлайн-площадки, где можно попрактиковаться с GraphQL. Подробно рассматриваются синтаксис и основные типы запросов, а также фрагменты как элемент, позволяющий переиспользовать часть кода.
Следующая глава — Схема GraphQL. Здесь уже детально описаны типы данных, их определение и использование. Кроме этого, разобрана валидация, а также отношения (один к одному, один ко многим, многие ко многим). Вполне подробно описаны интерфейсы и аргументы, а также фильтрация и пагинация.
Глава API GraphQL посвящена реальному примеру по работе с фотографиями с использованием GraphQL и JavaScript. Описан полный процесс — от установки apollo-server и apollo-server-express до подключения MongoDB. Подробно описаны настройки и базовые конфигурации всего устанавливаемого программного обеспечения.
Если в предыдущей главе упор делался на построение сервера, то здесь речь идёт уже о клиенте (в рамках того же примера с загрузкой изображений). В качестве реализации клиента выбран Apollo Client. Для усложнения задачи автор показывает, как подружить GraphQL с React, а для более-менее реального примера используется авторизация и кэширование.
Последняя глава завершает начатый ранее проект и вводит ещё более сложные концепции — например, подписки и загрузку файлов в режиме реального времени. Также уделяется внимание вопросам безопасности: показываются проблемы, связанные с глубиной и сложностью запросов.
Мнение
GraphQL — это неплохая замена популярному REST-подходу. Данная книга знакомит с новым стандартом передачи данных на примере языка запросов GraphQL. Немного вводной информации о том, зачем он нужен, какие проблемы решает, о теории графов — и сразу погружение в детали и синтаксис GraphQL. Для меня знакомство с GraphQL началось именно с этой книги, при этом во время чтения никаких затруднений не возникло. Книга показалась вполне понятной и лёгкой, так что я могу посоветовать её другим.