Опыт использования GraphQL в Sports.ru/Tribuna.com — онлайн-медиа со множеством разнородных клиентовАрхитектуры, масштабируемость
TL;DR
Если вы занимаетесь разработкой API для клиентских приложений и веба в 2018 году, вам точно надо узнать про GraphQL. Как минимум, это другой взгляд на дизайн API по сравнению с привычными RPC и REST. А еще эта вещь сделает вашу жизнь лучше.
В докладе:
- описание стандарта, инструменты разработки, лайв-демо;
- преимущества, которые дает GraphQL по сравнению с RPC и REST;
- где нужно использовать GraphQL, а где нет;
- типичная структура вашего бэкенда: gateway, resolver, dataloader, кэширование.
И да, мы используем GraphQL в проде, доклад основан на личном опыте.
* * *
Немного больше слов
Допустим, вы делаете онлайн-медиа, e-comm, соцсеть или еще какой-то consumer web, тогда вас есть три клиента: Web, iOS и Android. Ваши клиенты используют RPC (или REST) API. У клиентов очень похожие требования к API, но все же немного разные. И вы постоянно пытаетесь сбалансировать свое API так, чтобы оно было эффективно для клиентов, но при этом оставалось общим и гранулярным, чтобы ваш бэкенд не превратился в свалку мусора.
Мы решили для себя эту боль, начав использовать GraphQL. А еще мы получили приятные бонусы:
- упростилось API exploration, документирование;
- сократилось количество запросов между клиентом и сервером за счет батчинга;
- клиент всегда получает только те данные, которые ему нужны.
Опыт считаем позитивным, распространяем на все проекты компании, хотим поделиться им с вами.