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


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

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

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

Примечание.

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

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

  • Импортируйте схему GraphQL в экземпляр службы "Управление API Azure".
  • Настройте резольвер для запроса 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. В разделе "Определение нового API" выберите плитку GraphQL .

    Снимок экрана: выбор плитки GraphQL.

  3. В диалоговом окне выберите "Полный" и введите значения в обязательных полях, как описано в следующей таблице.

    Снимок экрана: страница

    Ценность Описание:
    Отображаемое имя Имя, под которым будет отображаться ваш API GraphQL.
    Имя Необработанное имя API GraphQL. Оно заполняется автоматически при вводе отображаемого имени.
    Тип GraphQL Выберите Синтетический GraphQL, чтобы импортировать из файла схемы GraphQL.
    Резервная конечная точка GraphQL При необходимости введите URL-адрес с именем конечной точки API GraphQL. Управление API передает запросы GraphQL в эту конечную точку, если настраиваемый резолвер для конкретного поля не задан.
    Описание Добавьте описание API.
    Схема URL-адресов Выберите шаблон на основе конечной точки API 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.

  2. Выберите API GraphQL.

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

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

    2. Выберите Добавить резолвер.

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

  4. В панели создать сопоставитель :

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

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

    Снимок экрана с конфигурацией политики резолвера на портале.

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

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

Совет

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

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

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

  2. В левой области в разделе API выберите API.

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

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

  5. Под Headers:

    1. Выберите заголовок в меню "Имя ".
    2. Введите значение в поле "Значение ".
    3. Добавьте дополнительные заголовки, выбрав "Добавить заголовок".
    4. Удалите заголовки с помощью кнопки корзины.
  6. Если вы добавили продукт в API GraphQL, добавьте область видимости продукта под Применить область видимости продукта.

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

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

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

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

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

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

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

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

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

  12. Завершив тестирование, закройте тестовую консоль.

Защита API GraphQL

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