Поделиться через


GraphQL в Azure для разработчиков JavaScript

GraphQL помогает приложениям JavaScript точно получать необходимые данные с одним запросом. В этой статье объясняется, что такое GraphQL, почему его можно использовать, и как службы Azure помогают создавать приложения GraphQL с минимальными усилиями. Независимо от того, переносите ли вы существующее приложение GraphQL или создаете новое приложение, Azure предоставляет средства и службы для упрощения процесса.

Что такое GraphQL?

GraphQL — это современный способ взаимодействия веб-приложения с серверами и базами данных. Подумайте об этом как более умный способ запрашивать именно необходимую информацию:

  • Это как заказ настраиваемой еды вместо принятия фиксированного меню - вы просите точно то, что вы хотите
  • Он хорошо работает с приложениями JavaScript, такими как React, Vue или Angular
  • Это позволяет ускорить и упростить сборку веб-приложений.

Вместо выполнения нескольких запросов к разным конечным точкам сервера (например, с традиционными ИНТЕРФЕЙСами REST API — стандартным способом обмена данными в большинстве веб-служб), GraphQL позволяет выполнять один точный запрос, чтобы получить все необходимые данные.

Почему бы я хотел использовать GraphQL в своем веб-приложении?

GraphQL повышает эффективность приложений JavaScript тремя основными способами:

  • Получите именно то, что вам нужно: приложение может запрашивать только необходимые данные прямо сейчас - не больше, не меньше. Это как ходить в буфет и брать только то, что вы будете есть, вместо того, чтобы предлагалось огромное фиксированное блюдо, где большая часть идет в отходы. Это делает приложение быстрее, так как оно загружает меньше данных.

  • Один запрос вместо многих: нужна информация из нескольких мест? Вместо того чтобы создавать 5 разных запросов к 5 разным конечным точкам, GraphQL позволяет выполнять только один запрос, чтобы получить все. Это похоже на то, что один человек собирает все ваши покупки вместо того, чтобы вы ходили по пяти разным магазинам.

  • Меньше ошибок с лучшими инструментами: GraphQL поставляется с инструментами, которые помогают перехватывать ошибки во время написания кода, а не при запуске приложения. Это похоже на проверку орфографии, которая работает во время ввода, а не обнаружение опечаток после публикации документа.

При создании с помощью GraphQL и JavaScript вы, скорее всего, будете использовать один из следующих популярных средств:

  • Клиент Apollo: наиболее широко используемый клиент GraphQL, который работает с React, Vue, Angular и обычным JavaScript.
  • URQL: упрощенная альтернатива с хорошей производительностью.
  • Ретранслятор: создан Facebook (который также создал GraphQL), лучше всего подходит для больших приложений React.

Службы Azure для приложений GraphQL

Выберите подход в зависимости от конкретного сценария:

Если вы хотите… Тогда вы должны... Использование этих служб Azure
Перенос существующего приложения GraphQL в Azure Развертывание приложения без изменения кода Служба приложений Azure или приложения контейнеров Azure
Добавление GraphQL в существующие данные Создание конечных точек GraphQL для данных с минимальным кодом Построитель API данных
Создание уровня API GraphQL Создание единого интерфейса GraphQL через существующие API Управление API Azure с помощью преобразования GraphQL

Размещение приложений GraphQL в Azure

У вас есть несколько хороших вариантов в зависимости от типа создаваемого приложения:

  • Служба приложений: это как традиционная служба размещения веб-сайтов, но с дополнительными функциями. Это отлично подходит для большинства приложений JavaScript, которым требуется сервер.

  • Контейнерные приложения: если приложение упаковываются в контейнеры (например, Docker), эта служба упрощает их выполнение и масштабирование.

Хранилище данных для приложений GraphQL

GraphQL необходимо подключиться к вашим данным. Azure предлагает несколько способов сделать это:

  • Превратите базу данных в API GraphQL: средство "Построитель api данных" может автоматически создать конечную точку GraphQL (URL-адрес, в котором приложение может отправлять запросы GraphQL) из существующей базы данных — кодирование не требуется.

  • Сохраните данные: Azure предлагает базы данных для различных потребностей:

    • База данных SQL: для традиционных табличных данных
    • Cosmos DB: для гибкого масштабируемого хранилища данных без жестких схем

Безопасные приложения GraphQL

  • Вход пользователей и безопасность. Платформа удостоверений Azure помогает добавлять функции входа в приложение, чтобы доступ к данным GraphQL можно получить только правильным пользователям.
  • Доступ на основе ролей: контроль того, какие пользователи могут запрашивать или изменять данные с помощью конечных точек GraphQL.
  • Защита API: добавьте ограничение скорости и мониторинг, чтобы предотвратить злоупотребление API GraphQL.

Создание API GraphQL для существующих данных

У вас уже есть данные в Azure и хотите получить к нему доступ с помощью GraphQL? Это можно сделать простыми способами.

  • Управление API. Эта служба может создать слой GraphQL перед существующими API или источниками данных. Это похоже на добавление переводчика GraphQL в системы, которые не говорят на языке GraphQL нативно.

  • Построитель данных. Это средство автоматически создает конечные точки GraphQL из баз данных. Это самый быстрый способ добавить GraphQL к вашим существующим данным, просто укажите на вашу базу данных, и оно сделает всё за вас.

Простой пример. Создание API GraphQL для базы данных продукта

Вот как процесс работает с простыми терминами:

  1. У вас есть база данных с информацией о продукте (имена, цены, описания)
  2. Вы настроили Data API Builder для подключения к вашей базе данных
  3. Инструмент для создания API автоматически создает конечную точку GraphQL.
  4. Теперь приложение JavaScript может выполнять такие запросы GraphQL:
{
  products(where: { price_lt: 50 }) {
    name
    price
    description
  }
}

Этот запрос поможет вам получить все товары стоимостью до $50, показывая только их названия, цены и описания.

Ресурсы, помогающие приступить к работе

Если вы хотите узнать больше или начать сборку с помощью GraphQL в Azure, ниже приведены некоторые полезные ресурсы:

Дальнейшие шаги