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

Благодаря очень простому синтаксису и растущей популярности, используемым ведущими разработчиками и крупными компаниями, такими как Github, Coursera, Pinterest, GraphQL уже стал реальностью во многих проектах, в том числе в моей работе.

В этой статье мы увидим, как эти технологии работают вместе на практике. Вы можете проверить образец проекта в этом репо. Просто не забудьте добавить конечную точку и настроить squema!

Обработка данных с помощью GraphQL

Запросы GraphQL просты для понимания, но сначала вам нужно получить Тип.

Типы - это то, как GraphQL определяет данные, ваш сценарий и определение.

В этом примере у нас есть тип Project, у которого есть строка Name, строка Tagline и несколько U kisers!

Запросите ваши данные, отправив запросы на сервер GraphQL.

И радуйтесь вашему ответу :)

{
  "project": {
    "tagline": "A query language for APIs"
  }
}

Graphcool

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

Клиент Apollo

Apollo Client - мощный клиент для выполнения запросов с помощью GraphQL, также с открытым исходным кодом, он идеально подходит для Angular, но также работает с другими технологиями, такими как Vue, Meteor и Ember.

На изображении выше показана схема из нашего приложения. Мы импортируем Apollo в наш проект с помощью NPM и будем использовать его для отправки запросов для нашей конечной точки Graphcool.

Руки вперед, давайте сделаем все это.

Вы должны иметь

  • Некоторые знания в ES6 Javascript
  • Код Visual Studio
  • Узел ›v10.X и NPM

1. Установка Angular, создание проекта и добавление зависимостей

Давайте установим Angular CLI v6.2.2, откроем терминал и запустим эти команды.

$ npm install -g @angular/[email protected]

После установки мы можем проверить версию Angular CLI, запустив $ ng -v в вашем терминале, если эти команды возвращают экран, подобный приведенному ниже, мы можем запустить наш Angular Project.

$ ng -v
     _                      _                 ____ _     ___
    / \   _ __   __ _ _   _| | __ _ _ __     / ___| |   |_ _|
   / △ \ | '_ \ / _` | | | | |/ _` | '__|   | |   | |    | |
  / ___ \| | | | (_| | |_| | | (_| | |      | |___| |___ | |
 /_/   \_\_| |_|\__, |\__,_|_|\__,_|_|       \____|_____|___|
                |___/

Angular CLI: 6.2.2
Node: 10.1.0
OS: win32 x64
Angular:
...
Package                      Version
------------------------------------------------------
@angular-devkit/architect    0.8.2
@angular-devkit/core         0.8.2
@angular-devkit/schematics   0.8.2
@schematics/angular          0.8.2
@schematics/update           0.8.2
rxjs                         6.2.2
typescript                   2.9.2

Создайте проект, пропустить тесты - это необязательный флаг.

$ ng new apollo-graphql --skip-tests

После создания проекта добавьте зависимости. Мы узнаем больше о каждом при реализации.

$ npm i --save apollo-angular-link-http apollo-angular apollo-cache-inmemory apollo-client graphql ghraphql-tag

Теперь наш проект готов к работе.

2. Создание squema в Graphcool и получение конечной точки.

Зайдите в Graphcool Console и создайте свою учетную запись. После входа в систему Graphcool создаст образец проекта, платформа очень понятна, поэтому не стесняйтесь исследовать.

В примере проекта перейдите в меню squema, мы получим что-то вроде этого:

type File @model {
  contentType: String!
  createdAt: DateTime!
  id: ID! @isUnique
  name: String!
  secret: String! @isUnique
  size: Int!
  updatedAt: DateTime!
  url: String! @isUnique
}
type User @model {
  createdAt: DateTime!
  id: ID! @isUnique
  name: String!
  updatedAt: DateTime!
}

В примере проекта перейдите в нижний левый угол страницы и щелкните «конечная точка», эта ссылка будет использоваться для настройки клиента Apollo.

3. Настройте ApolloClient на Angular и начните отправлять запросы и мутации.

Для настройки клиента Apollo и получения запросов на чтение и отправку необходим только один файл, поэтому возьмите конечную точку из предыдущего шага и создайте в своем src / приложении файл с именем apollo-config.module.ts.

Этот класс инициализирует Apollo и HttpLink для работы с протоколом HTTP. Импортируя его класс в модуль Angular, мы уже можем отправлять запросы. Я не буду вводить подробности построчно в этой статье.

Как я уже сказал, после создания конфигурации Apollo мы можем отправлять запросы, поэтому перейдите на свой app.component.ts.

И это все. В этом примере Apollo создаст возвращаемый наблюдаемый объект с возвратом Graphcool. Я рекомендую вам вернуться в консоль Graphcool и посмотреть созданные элементы.

Спасибо !

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