@nodkz Послушал доклад на Holy.js про фрагменты и Relay.
Особо интересным показался разговор про "Волосатый" GraphQL API. Основная мысль, я так понял, такая - при хорошо спроектированном GraphQL API разработчики клиентской стороны могут спокойно ходить по описаным в схеме связям, вызывая различные resolvers, а в плохом - словно в REST стучатся в определенные точки.
По моему мненую, это утверждение верно лишь для тех проектов, в которых логика модели хранимых данных декларативно мапится на клиентское приложение, то есть в довольно простых приложениях.
В случаях, когда бэкенд представляет из себя прложение с трехзвенной архитектурой (Представление - Бизнес -Данные), в нем много бизнес логики и, особенно, когда делается серьезный упор на производительность, сделать "Волосатый" GraphQL будет почти что невозможно. Может я просто не видел хорошего примера, но все наши попытки на проекте, которому уже больше года, сводятся все равно к описанию определенных операций и конкретной их обработке.
Тем не менее, даже при таком подходе, надо сказать, видятся огромные преимущества использования GraphQL. Жесткая типизация, в совокупности с продвинутым тулингом, позволяет тратить в разы меньше времени на общение с фронтендерами по поводу изменений в API. В моем случае есть три клиентских приложения,, которые делают 6 человек, и я почти не трачу времени на объяснения изменений в API. Я, как максимум, говорю, какие запросы изменились - дальше они уже лезут в песочницу и смотрят сами. Да и самому легче при разработке фич использовать песочницу для проверки работы запросов, чем какой-нибудь PostMan в случае Rest.
Так что, как мне кажется, вполне имеет место быть импользование GraphQL в качестве декларативного способа задать уровень представления для работы с API для операций, которые вызывают нужные контроллеры, работающие с бизнес-логикой.