Разработка веб-приложений GraphQL с React, Node.js и Neo4j
Book information
Description
Эта книга научит вас создавать графовые веб-приложения с использованием технологии GraphQL, преимущества которой усиливают такие графовые инструменты и хранилища данных, как React, Apollo и Neo4j. Вначале вы познакомитесь с GraphQL и собственно с понятием графов, затем сосредоточитесь на разработке клиентского приложения с использованием React и, наконец, создадите и развернете в облаке полноценное веб-приложение, поддерживающее поиск, аутентификацию и многое другое. Издание предназначено для веб-разработчиков полного цикла, заинтересованных в технологии GraphQL и имеющих базовое представление о Node.js API и особенностях клиентских приложений на JavaScript, использующих этот API. Опыт работы с GraphQL или графовыми базами данных не обязателен. Предисловие от издательства Вступление Благодарности О книге Кому адресована эта книга Организация книги О примерах программного кода Требования к программному обеспечению Живое обсуждение книги Другие онлайн-ресурсы Об авторе Об иллюстрации на обложке Часть I. Введение в стек GraphQL Глава 1 Что такое стек GraphQL? 1.1. Обзор стека GraphQL 1.2. GraphQL 1.2.1. Определения типов в GraphQL 1.2.2. Запросы GraphQL 1.2.3. Преимущества GraphQL 1.2.4. Недостатки GraphQL 1.2.5. Инструменты GraphQL 1.3. React 1.3.1. Компоненты React 1.3.2. JSX 1.3.3. Инструменты React 1.4. Apollo 1.4.1. Apollo Server 1.4.2. Apolo Client 1.5. База данных Neo4j 1.5.1. Графовая модель свойств 1.5.2. Язык запросов Cypher 1.5.3. Инструменты Neo4j 1.6. Как все это сочетается 1.6.1. React и Apollo Client: выполнение запроса 1.6.2. Apollo Server и серверная часть GraphQL 1.6.3. React и Apollo Client: обработка ответа 1.7. Что мы будем строить в этой книге 1.8. Упражнения Итоги Глава 2 Графовое мышление с GraphQL 2.1. Данные приложения – это граф 2.2. Графы в GraphQL 2.2.1. Моделирование API с применением определений типов: разработка на основе GraphQL 2.2.2. Выборка данных с помощью функций разрешения 2.2.3. Наша первая функция разрешения 2.3. Объединение определений типов и функций разрешения в Apollo Server 2.3.1. Apollo Server 2.3.2. Apollo Studio 2.3.3. Реализация функций разрешения 2.3.4. Выполнение запросов с помощью Apollo Studio 2.4. Упражнения Итоги Глава 3 Графы в базе данных 3.1. Обзор Neo4j 3.2. Моделирование графовых данных в Neo4j 3.2.1. Графовая модель свойств 3.2.2. Ограничения базы данных и индексы 3.3. Вопросы моделирования данных 3.3.1. Узел и свойство 3.3.2. Узел и отношение 3.3.3. Индексы 3.3.4. Специфика типов отношений 3.3.5. Выбор направления отношений 3.4. Инструменты: Neo4j Desktop 3.5. Инструменты: Neo4j Browser 3.6. Cypher 3.6.1. Сопоставление с образцом 3.6.2. Свойства 3.6.3. CREATE 3.6.4. MERGE 3.6.5. Определение ограничений на Cypher 3.6.6. MATCH 3.6.7. Агрегаты 3.7. Использование клиентских драйверов Neo4j 3.8. Упражнения Итоги Глава 4 Библиотека Neo4j GraphQL 4.1. Распространенные проблемы GraphQL 4.1.1. Низкая производительность и проблема n + 1 запроса 4.1.2. Типовой код и продуктивность разработчиков 4.2. Введение в средства интеграции GraphQL с базой данных 4.3. Библиотека Neo4j GraphQL 4.3.1. Настройка проекта 4.3.2. Генерирование схемы GraphQL из определений типов 4.4. Основы запросов GraphQL 4.5. Упорядочение и разбиение на страницы 4.6. Вложенные запросы 4.7. Фильтрация 4.7.1. Аргумент where 4.7.2. Вложенные фильтры 4.7.3. Логические операторы: AND, OR 4.7.4. Фильтрация выборки 4.8. Работа с датой/временем 4.8.1. Использование типа Date в запросах 4.8.2. Фильтры по полям с типами Date и DateTime 4.9. Работа с пространственными данными 4.9.1. Выборка данных типа Point 4.9.2. Фильтрация по расстояниям 4.10. Добавление своей логики в GraphQL API 4.10.1. Директива @cypher 4.10.2. Реализация собственных функций разрешения 4.11. Определение схемы GraphQL в существующей базе данных 4.12. Упражнения Итоги Часть II Создание пользовательского интерфейса Глава 5 Создание пользовательского интерфейса с помощью React 5.1. Обзор React 5.1.1. JSX и элементы React 5.1.2. Компоненты React 5.1.3. Иерархия компонентов 5.2. Create React App 5.2.1. Создание приложения React с помощью Create React App 5.3. Состояние и подключаемые обработчики React Hooks 5.4. Упражнения Итоги Глава 6 Клиент GraphQL 6.1. Apollo Client 6.1.1. Добавление Apollo Client в приложение React 6.1.2. Обработчики Apollo Client 6.1.3. Переменные GraphQL 6.1.4. Фрагменты GraphQL 6.1.5. Кеширование в Apollo Client 6.2. Мутации GraphQL 6.2.1. Создание узлов 6.2.2. Создание отношений 6.2.3. Изменение и удаление 6.3. Управление состоянием клиента с помощью GraphQL 6.3.1. Локальные поля и реактивные переменные 6.4. Упражнения Итоги Часть III Задачи разработки полного цикла Глава 7 Добавление авторизации и аутентификации 7.1. Авторизация в GraphQL: простейший подход 7.2. Веб-токены JSON Web Token 7.3. Директива схемы @auth 7.3.1. Правила и операции 7.3.2. Правило авторизации isAuthenticated 7.3.3. Правило авторизации roles 7.3.4 Правило авторизации allow 7.3.5. Правило авторизации where 7.3.6. Правило авторизации bind 7.4. Auth0: JWT как услуга 7.4.1. Настройка Auth0 7.4.2. Auth0 React 7.5. Упражнения Итоги Глава 8 Развертывание приложения GraphQL 8.1. Развертывание приложения GraphQL 8.1.1. Преимущества развертывания в бессерверном окружении 8.1.2. Недостатки развертывания в бессерверном окружении 8.1.3. Обзор подхода к развертыванию приложения GraphQL в бессерверном окружении 8.2. База данных Neo4j Aura как услуга 8.2.1. Создание кластера Neo4j Aura 8.2.2. Подключение к кластеру Neo4j Aura 8.2.3. Выгрузка данных в Neo4j Aura 8.2.4. Исследование графа с помощью Neo4j Bloom 8.3. Развертывание приложения React с помощью Netlify Build 8.3.1. Добавление сайта в Netlify 8.3.2. Настройка переменных окружения для сборок Netlify 8.3.3. Предварительное развертывание в Netlify 8.4. Развертывание GraphQL в виде бессерверной функции с помощью AWS Lambda и Netlify Functions 8.4.1. GraphQL API в виде бессерверной функции 8.4.2. dev: интерфейс командной строки Netlify 8.4.3. Преобразование GraphQL API в функцию Netlify 8.4.4. Добавление собственного домена в Netlify 8.5. Наш подход к развертыванию 8.6. Упражнения Итоги Глава 9 Продвинутые возможности GraphQL 9.1. Абстрактные типы GraphQL 9.1.1. Интерфейсы 9.1.2. Объединения 9.1.3. Использование абстрактных типов с библиотекой Neo4j GraphQL 9.2. Разбиение на страницы с помощью GraphQL 9.2.1. Разбиение на страницы по смещению 9.2.2. Разбиение на страницы с помощью курсора 9.3. Свойства отношений 9.3.1. Интерфейсы и директива @relationship 9.3.2. Создание свойств отношений 9.4. В заключение 9.5. Упражнения Итоги Предметный указатель
Similar books
Full Stack GraphQL Applications: With React, Node.js, and Neo4j
2022 · PDF
Методология научных исследований и прикладной аналитики: Учебник. Изд. 5-е, дополн. и перераб. В 2 т. Т.2: Научные исследования: Мастерство и искусство научного мышления и научной работы / Methodology of Scientific Research and Practical Analytics: A Textbook: Fifth Edition. In two volumes. Vol.2: Scientific research: Art of scientific thinking and scientific work / Méthodologie de la recherche scientifique et de l’analytique appliquée: Manuel: Cinquième édition. En 2 tomes. T.2: Recherches scientifiques: Art de la pensée scientifique et du travail scientifique
2025 · PDF
Методы и понятия философии искусства: практикум : уровень подготовки кадров высшей квалификации: ассиснтурв-стажировка : специальности: 54.09.03 "Искусство дизайна (по видам)", 54.09.02 "Мастерство декоративно-прикладного искусства и народных промыслов (по видам)" : укрупненная группа специальностей: 54.00.00 "Изобразительное и прикладные виды искусств" : квалификация выпускника: "Преподаватель творческих дисциплин в высшей школе. Дизайнер", "Преподаватель творческих дисциплин в высшей школе. Художник декоративно-прикладного искусства" : форма обучения: очная
2022 · PDF
Разработка графического интерфейса пользователя информационной системы с использованием библиотеки QT: учебное пособие для студентов 1 курса направлений подготовки 09.04.02 "Информационные системы и технологии", 27.04.03 "Системный анализ и управление" очной формы обучения, 2 курса направления подготовки 10.05.03 "Информационная безопасность автоматизированных систем" очной формы обучения и 3 курса направления подготовки 09.03.02 "Информационные системы и технологии" очной и заочной форм обучения : учебное электронное издание
2021 · PDF
Археологические культуры Сибири в контексте кросс-культурных контактов в Евразии: к 300-летию первых научных археологических раскопок в Сибири (1722 г.) =: Archaeological Cultures of Siberia in the context of Cross-cultural contacts in Eurasia: dedicated to the 300th anniversary of the first scientific archaeological excavations in Siberia (1722) : материалы Международной археологической конференции молодых исследователей "Археологические культуры Сибири в контексте кросс-культурных контактов в Евразии: к 300-летию первых научных археологических раскопок в Сибири (1722 г.)" (Новосибирск, 21-25 ноября 2022 г.)
2022 · PDF
Трешниковские чтения - 2023. Современная географическая картина мира и технологии географического образования =: Treshnikov readings - 2023. Modern geographical global picture and technology of geographic education : материалы Всероссийской научно-практической конференции с международным участием, посвящённой памяти знаменитого российского океанолога, исследователя Арктики и Антарктики, академика Алексея Фёдоровича Трёшникова и 60-летию Ульяновского областного отделения Всероссийской общественной организации "Русское гаографическое общество" (13 апреля 2023)
2023 · PDF
Управление объектами интеллектуальной собственности. Искусство изобретать: учебник для обучающихся по направлениям подготовки 23.00.00 , направлениям подготовки 23.03.01 "Технология транспортных процессов", уровень образования-"бакалавриат", 23.03.03 "Эксплуатация транспортно-технологических машин и комплексов", уровень образования-"бакалавриат", 23.04.01 "Технология транспортных процессов", уровень образования- "магистратура", 23.04.03 "Эксплуатация транспортно-технологических машин и комплексов", уровень образования- "магистратура"
2022 · PDF
Философия. Учебно-методический комплекс дисциплины по направлениям подготовки: 51.03.03 (071800.62) «Социально-культурная деятельность», профили подготовки: «Социально-культурные технологии в индустрии досуга», «Менеджмент социально-культурной деятельности», «Менеджмент детско-юношеского досуга», «Постановка и продюсирование культурно-досуговых программ», «Социально-культурная анимация и рекреация»; 38.03.02 (080200.62) «Менеджмент», профили подготовки: «Управление человеческими ресурсами», «Управление малым бизнесом», квалификации (степень) выпускника – «бакалавр»
2014 · PDF