В мире технологий почти каждый день происходит что-то новое. В один прекрасный день хорошие люди из React предоставляют нам способ работать с состоянием без необходимости писать классы (React Hooks), а в другой день кто-то выпускает новую библиотеку, которая позволяет вам работать с Ethereum через Vue (Vuethereum)!

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

То же самое и с GraphQL! GraphQL - это язык запросов к данным с открытым исходным кодом, который используется для создания API-интерфейсов для веб-приложений и мобильных приложений. Это отличная замена REST и другим архитектурам веб-сервисов. Это позволяет клиентской стороне приложения получать данные в любой структуре.

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



Но GraphQL - это просто язык запросов. А чтобы им было легко пользоваться, нам нужна платформа, которая сделает за нас всю тяжелую работу. Одна такая платформа предоставляется Apollo.

Платформа Apollo - это реализация GraphQL, которая может передавать данные между облаком (сервером) в пользовательский интерфейс вашего приложения. Фактически, Apollo строит свою среду таким образом, что мы можем использовать ее для обработки GraphQL как на стороне клиента, так и на стороне сервера приложения.

В этом посте я представлю некоторые из веских причин, по которым Apollo считается одним из популярных вариантов использования GraphQL в приложениях на основе JavaScript.

Совет: используйте Bit, чтобы быстрее создавать JS-приложения с помощью компонентов. Организуйте, делитесь и повторно используйте компоненты для создания приложений вместе со своей командой. Он также отлично работает с компонентами Apollo и React, попробуйте.



Подробнее о платформе

Платформа Apollo состоит из комбинации компонентов. Он содержит такие вещи, как Apollo Server, IDE Plugins, Apollo CLI и другие компоненты, которые попадают в одну из этих трех категорий:

  • Компоненты с открытым исходным кодом
  • Клиентские службы
  • Коммерческие плагины

Давайте подробнее рассмотрим компоненты внутри этих категорий.

Компоненты с открытым исходным кодом

Платформа Apollo содержит сервер GraphQL JavaScript, который определяет схему, и набор resolvers, реализующих каждую часть этой схемы. Сервер является расширяемым в том смысле, что коммерческие плагины могут подключаться к любым запросам, отправленным на сервер.

Платформа также имеет компонент клиент, который может управлять всеми данными приложения. Компонент можно использовать с React, Vue, Angular и многими другими приложениями.

Для мобильных приложений платформа имеет компонент клиента для Android и iOS, разработанный сообществом GraphQL.

Помимо всего этого, платформа также поставляется с компонентом CLI (интерфейс командной строки), который помогает разработчику получать доступ к облачным сервисам Apollo.

Облачные сервисы от Apollo

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

Платформа также имеет конвейер и уровень хранения, который принимает информацию о процессах операций GraphQL, выполняемых сервером Apollo.

Шлюз

Шлюз платформы Apollo - это конфигурация сервера и плагинов. Он состоит из «микросхем», которые ссылаются друг на друга в единую «главную-схему». При ответе на запросы шлюз строит план запроса, извлекает данные из службы GraphQL и объединяет их в единый результат.

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

Плюсы Аполлона

Ниже приведены некоторые преимущества использования платформы Apollo для GraphQL.

1. Окружающая среда Аполлона огромна!

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

2. Существенная поддержка со стороны компании и сообщества.

Apollo’s инвестировал и продолжает вкладывать много ресурсов в эту платформу. Благодаря открытому исходному коду основных компонентов платформа приобрела большое количество поклонников в техническом сообществе, которое продолжает расти с каждым днем.

Вот некоторые из известных компаний, которые используют Apollo:

  • Airbnb
  • Twitch
  • Нью-Йорк Таймс
  • KLM
  • Середина

3. Множество дополнительных библиотек

Apollo предоставляет множество библиотек с открытым исходным кодом, которые чрезвычайно полезны при реализации GraphQL для приложений JavaScript. Библиотека Apollo Link предоставляет нам API, который может «связывать» различные функции с потоком управления GraphQL.

4. Встроенные функции

Платформа состоит из функций, которые снимают большую часть сложности, связанной с данными, из приложения и обрабатывают связь между клиентской и серверной сторонами. Эти функции обрабатывают больше, чем просто кеширование, они также обрабатывают такие вещи, как обработка ошибок, разбиение на страницы, оптимистичный пользовательский интерфейс, предварительная выборка данных и подключение Apollo Client к библиотекам пользовательского интерфейса, таким как React и Vue.

5. Взаимодействие с другими фреймворками.

Подобно тому, как библиотека react-redux соединяет React с Redux, Apollo содержит библиотеки, такие как react-apollo, которые содержат компоненты более высокого порядка (HOC) и компоненты рендеринга prop, которые могут подключать React к Apollo. Существуют и другие похожие библиотеки, благодаря которым Apollo отлично подходит для приложений на основе JavaScript.

Это только на стороне клиента приложения, на стороне сервера Apollo предлагает множество других библиотек, которые могут соединить его с Node, Express, Koa и Hapi.

6. Обработка данных с помощью современной обработки данных

Раньше нам приходилось запускать выборку в методах жизненного цикла компонента, чтобы загрузить данные. В Apollo Client запросы данных становятся декларативными.

Обычно мутации GraphQL запускаются императивно, но это только потому, что HOC или свойство render предоставляет доступ к функции, которая выполняет мутацию (например, при нажатии кнопки). В Apollo изменения и запросы становятся декларативными, а не императивными.

7. Аполлон для государственного управления

Как будто в мире управления состоянием все еще не было запутанного, люди начали задаваться вопросом, должны ли они использовать библиотеки, такие как Redux и MobX, если они также используют Apollo на стороне сервера.

В ответ на это Apollo выпустил библиотеку «Apollo Link State», которая позволяет вам управлять всеми данными (локальными и удаленными) с помощью GraphQL. Вместо этого вы можете использовать кеш Apollo Client в качестве единственного источника истины, который хранит все ваши локальные данные вместе с вашими удаленными данными. Чтобы получить доступ к своему локальному состоянию или обновить его, вы используете запросы и мутации GraphQL так же, как и для данных с сервера.

Подведение итогов

Даже несмотря на все хорошее, что происходит с платформой Apollo, есть определенные области, в которых все можно улучшить.

Несмотря на то, что GraphQL существует с 2015 года (стабильный выпуск в 2016 году), он по-прежнему считается довольно новым. Поскольку Apollo создает среду вокруг GraphQL, пока она все еще находится в разработке, пользователям Apollo придется быть осторожными с любыми серьезными изменениями в GraphQL.

Спасибо, что прочитали этот длинный пост! Надеюсь, этот пост помог вам немного лучше понять GraphQL и место Apollo в нем.

Я скоро опубликую сообщение на тему Как создавать приложения React с GraphQL. А пока прочтите мой пост о том, почему людям нравится GraphQL



Если вам понравился этот пост, пожалуйста, дайте мне несколько 👏 и не стесняйтесь оставлять комментарии ниже. Ваше здоровье!

Учить больше