Тип доклада: Доклад

А нужен ли нам GraphQL?

  • Доклад на русском языке
Презентация https

GraphQL — это инструмент, а не серебряная пуля. И каждый инструмент удобен под свою категорию задач. Молотком шуруп не закрутишь, отверткой гвоздь не забьешь – это практически нереально.

GraphQL нужен, если:

  • модели постоянно развиваются и количество полей растет;
  • есть взаимодействие между бэкендом и фронтендом, у которого предполагается стейт-менеджер;
  • нужна статическая типизация на фронтенде согласно серверной схеме данных;
  • если много разных entity (models), между ними много связей и клиенту нужны их агрегации (а-ля LEFT JOIN) и желательно за один http-запрос.

GraphQL не нужен, если:

  • ведется работа с файлами или другими бинарными данными;
  • аутентификация, есть oidc и/или oauth2;
  • CRDT и многопользовательское редактирование;
  • есть активное межсерверное взаимодействие, требовательное к скорости, памяти и/или трафику.

А что делать, если мы попадаем в обе категории? Пилите два, три API на разных технологиях: «Надо дать так, чтоб клиентам было удобно взять». Любое API — это фасад перед сервисами и моделями. И написать их не так уж и трудозатратно, если бизнес-логика у вас вынесена на свой слой абстракции и разные имплементации API переиспользуют её.

В докладе разберем сильные и слабые стороны GraphQL.

Спикеры

Приглашенные эксперты

Доклады