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


Добавление искусственного API GraphQL и настройка сопоставителей полей

ОБЛАСТЬ ПРИМЕНЕНИЯ: все уровни Управления API

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

Примечание.

В настоящее время эта функция недоступна в рабочих областях.

Работая с этой статьей, вы узнаете о следующем.

  • Импорт схемы GraphQL в экземпляр Управления API
  • Настройка сопоставителя для запроса GraphQL с помощью существующей конечной точки HTTP
  • Протестируйте API GraphQL

Если вы хотите предоставить доступ к существующей конечной точке GraphQL в качестве API, обратитесь к разделу Импорт API GraphQL.

Предварительные условия

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

Перейдите к вашему экземпляру управления API.

  1. На портале Azure найдите и выберите службы управления API:

    снимок экрана, на котором показаны службы управления API в результатах поиска.

  2. На странице управления API выберите ваш экземпляр службы управления API:

    снимок экрана, на котором показан экземпляр службы управления API на странице служб управления API.

Добавление схемы GraphQL

  1. В меню навигации сбоку выберите API в разделе API.

  2. В разделе Define a new API (Определение нового API) щелкните значок GraphQL.

    Снимок экрана: выбор значка GraphQL из списка API.

  3. В открывшемся диалоговом окне выберите Полный и заполните обязательные поля формы.

    Снимок экрана: поля для создания API GraphQL.

    Поле Описание:
    Отображаемое имя Имя, под которым будет отображаться ваш API GraphQL.
    Имя Необработанное имя API GraphQL. Оно заполняется автоматически при вводе отображаемого имени.
    Тип GraphQL Выберите Синтетический GraphQL, чтобы импортировать из файла схемы GraphQL.
    Резервная конечная точка GraphQL При необходимости введите URL-адрес с именем конечной точки API GraphQL. Управление API передает запросы GraphQL в эту конечную точку, если настраиваемый резолвер для конкретного поля не задан.
    Описание Добавьте описание API.
    Схема URL-адресов Сделайте выбор на основе конечной точки GraphQL. Выберите один из вариантов, включающих схему WebSocket (WS или WSS), если API GraphQL включает тип подписки. Выбор по умолчанию: HTTP(S).
    Суффикс URL-адреса API Добавьте суффикс URL-адреса для идентификации этого API в данном экземпляре Управления API. Он должен быть уникальным в этой инстанции Управления API.
    Базовый URL-адрес Недоступное для редактирования поле, отображающее базовый URL-адрес API
    Теги Сопоставьте API GraphQL с новыми или существующими тегами.
    Товары Свяжите API GraphQL с продуктом, чтобы опубликовать его.
    Версия этого API Выберите, чтобы применить схему управления версиями к API GraphQL.
  4. Нажмите кнопку создания.

  5. После создания API просмотрите или измените схему на вкладке "Конструктор ".

Настройка резолвера

Настройте сопоставитель для сопоставления поля в схеме с существующей конечной точкой HTTP. Здесь приведены шаги высокого уровня. Дополнительные сведения см. в разделе "Настройка сопоставителя GraphQL".

Предположим, вы импортировали следующую базовую схему GraphQL и хотите настроить сопоставитель для запроса users.

type Query {
    users: [User]
}

type User {
    id: String!
    name: String!
}
  1. В меню навигации сбоку в разделе API выберите API> ваш API GraphQL.

  2. На вкладке Схема рассмотрите схему для поля в типе объекта, где требуется настроить резолвер.

    1. Выберите поле, а затем в левой части экрана наведите указатель.

    2. Выбор и добавление сопоставителя

      Снимок экрана добавления сопоставителя GraphQL в портал.

  3. На странице «Создать сопоставитель»:

    1. Обновите свойство Name, если вы хотите, при необходимости введите описание и подтвердите или обновите выбор типа и поля.
    2. В источнике данных выберите HTTP API.
  4. В редакторе политики разрешателя обновите элемент <http-data-source> с дочерними элементами для вашего сценария. Например, следующий резолвер извлекает поле пользователей, вызывая GET к существующему источнику данных HTTP.

        <http-data-source>
            <http-request>
                <set-method>GET</set-method>
                <set-url>https://myapi.contoso.com/users</set-url>
            </http-request>
        </http-data-source>
    

    Снимок экрана: настройка политики сопоставителя на портале.

  5. Нажмите кнопку создания.

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

Совет

При изменении политики сопоставителя выберите "Выполнить тест ", чтобы проверить выходные данные из источника данных, которые можно проверить на соответствие схеме. Если возникают ошибки, ответ содержит сведения об устранении неполадок.

Протестируйте API GraphQL

  1. Перейдите к экземпляру Управления API.

  2. В меню навигации сбоку выберите API в разделе API.

  3. В разделе All APIs (Все API) выберите API GraphQL.

  4. Откройте вкладку Тестирование, чтобы перейти к консоли тестирования.

  5. Под Headers:

    1. Выберите заголовок в раскрывающемся меню Name (Имя).
    2. Введите значение в поле Value (Значение).
    3. Добавьте дополнительные заголовки, нажав кнопку + Add header (Добавить заголовок).
    4. Удалите заголовки с помощью значка корзины.
  6. Если вы добавили продукт в API GraphQL, примените область продукта в разделе Apply product scope (Применить область продукта).

  7. В редакторе запросов выполните одно из следующих действий:

    1. Выберите хотя бы одно поле или подполе в списке в боковом меню. Выбранные поля и подполя отображаются в редакторе запросов.

    2. Начните вводить текст в редакторе запросов, чтобы создать запрос.

      Снимок экрана: добавление полей в редактор запросов.

  8. В разделе Query variables (Переменные запроса) добавьте переменные для повторного использования одного запроса или изменения и передайте разные значения.

  9. Выберите Отправить.

  10. Просмотрите Response (Ответ).

    Снимок экрана: просмотр ответа тестового запроса.

  11. Повторите предыдущие шаги, чтобы протестировать различные нагрузки.

  12. По завершении тестирования закройте консоль тестирования.

Защита API GraphQL

Защита API GraphQL путем применения существующих политикпроверки подлинности и авторизации GraphQL для защиты от атак, относящихся к GraphQL .