Создаем свой GraphQL-сервер на Node.js RU

платный воркшоп

Дата: 13 июня 2020

Место: Санкт-Петербург, 9-я линия ВО, 34, БЦ Magnus, офис 303

Назад к воркшопам
Павел Черторогов, ps.kz

Павел Черторогов ps.kz nodkz

GraphQL-ниндзя, разработчик интернет-продуктов, опенсорс-мейнтейнер. С 2001 года основная специализация - веб-технологии. Обладает обширными практическими знаниями по бэкенду, фронтенду, администрированию и построению архитектуры. С конца 2015 года делает основной упор на изоморфные приложения. Летом 2016 начал разработку graphql-compose (генератора GraphQL-схем) в опенсорсе. Написал достаточно много материала на русском про GraphQL – https://github.com/nodkz/conf-talks. В 2019 начал формировать best practice по дизайну GraphQL-схем – https://graphql-rules.com.

Telegram — https://t.me/graphql_ru

Алексей Золотых, Infobip

Алексей Золотых Infobip zolotyh

Пишет на JavaScript c 2007 года. До перехода к JS работал верстальщиком, сверстал более 100 сайтов. Писал на jQuery, Backbone.js, Angular 1, Angular 2, React, Ext JS, PolymerJS. Любит пользовательские интерфейсы и кофе.

Перейти к покупке

Описание воркшопа

Воркшоп может дать существенный толчок в изучении GraphQL начинающим специалистам. А также заинтересовать и опытных специалистов. Вас ждет много интересного материала простым и доступным языком.

По окончании воркшопа у группы должно сложиться понимание из каких частей состоит GraphQL-сервер, как он работает, как конструировать схемы, с какими проблемами придется столкнуться и как их необходимо решать.

Воркшоп проводят:

  • Павел Черторогов — один из ведущих специалистов по GraphQL, который работает с ним больше 4-х лет и сделал более 15 докладов о данной технологии.
  • Алексей Золотых — teamlead Infobip, член программного коммитета HolyJS, спикер и самый крупный фронтендер.

Знакомство с GraphQL

  • Чем хорош GraphQL и почему он стал таким популярным?
  • Что такое GraphQL-сервер?
  • Что такое GraphQL-схема и из каких примитивов она состоит?
    • основные типы Scalar, Object, Input, Enum;
    • модификаторы NonNull, List;
    • как написать кастомный скаляр;
    • Interfaces и Unions;
    • Directives.
  • Какие операции есть в GraphQL и как они отличаются друг от друга?
    • query;
    • mutation;
    • subscription;
  • Что такое контекст и как он работает?
  • Подходы к построению схем:
    • schema-first;
    • code-first;
    • генерация схем.
  • Дизайн GraphQL-схем:
    • почему схема по умолчанию nullable;
    • популярные принципы и лайфхаки в построении схем.

Создаем GraphQL-схему

  • Подходы в построении схем:
    • graphql-js;
    • graphql-tools;
    • graphql-compose;
    • type-graphql;
    • nexus;
    • graphql modules;
    • graphql-compose-modules;
    • NestJS.
  • Написание Entity (Order):
    • создание Query.
  • Написание второй Entity (Employee):
    • связь между типами.
  • Изменяем данные через Mutation;
  • Реализуем Subscription:
    • как работают Subscriptions под капотом.

Решаем стандартные проблемы

  • N+1 Problem;
  • Query cost;
  • Авторизация (cookies, заголовки);
  • Логирование (Winston);
  • Отлов ошибок (Sentry);
  • Трассировка (Elastic APM).

Обсуждения разных тем (зависит от оставшегося времени, и от интереса присутствующих):

  • несколько схем на одном сервере (админская, пользовательская);
  • версионирование GraphQL-схем;
  • производительность GraphQL;
  • как прикрутить GraphQL к существующему REST API;
  • микросервисная архитектура: schema-stiching, Apollo Federation.