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


Создание HTTP-запросов

В Copilot Studio вы можете расширить возможности помощника, вызывая внешние API REST с помощью узла HTTP-запрос. Этот вызов может быть полезен, когда вам необходимо получить данные из внешней системы или манипулировать данными в этой системе.

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

Используйте узел HTTP-запроса

  1. Выберите Добавить узел (+), откройте подменю Дополнительно, затем выберите Отправить HTTP-запрос.

    Снимок экрана пункта отправки HTTP-запросов в меню «Дополнительно».

  2. В поле URL-адрес введите URL-адрес для конечной точки API-интерфейса, который требуется вызвать.

  3. Выберите соответствующий Метод запроса в раскрывающемся списке. Поддерживаются методы GET, POST, PATCH, PUT и DELETE.

    Снимок экрана с заполненным URL-адресом API-интерфейса и раскрывающимся списком методов

  4. В разделе Заголовки и текст на узле выберите кнопку Изменить, которая открывает панель Свойства HTTP-запроса.

  5. При желании вы можете добавить в HTTP-запрос один или несколько заголовков. Выберите кнопку Добавить, чтобы добавить ключ и значение каждого заголовка.

    Снимок экрана списка пар ключ-значение заголовков для узла HTTP.

  6. По умолчанию в теле HTTP-запроса содержимое не отправляется, но вы можете указать содержимое в теле.

  7. В узле выберите тип данных ответа из доступных вариантов.

    Вы можете предоставить пример ответа JSON, который обычно можно найти в документации по API-интерфейсу, который вы вызываете. Он генерирует переменную Power Fx, позволяя вам использовать ее в другом месте вашего холста разработки с поддержкой Intellisense в редакторе Power Fx. Выберите Из образца данных, затем выберите Получить схему из образца JSON. Вставьте ваш образец ответ в редактор и выберите Подтвердить.

    Снимок экрана получения схемы из примера редактора JSON.

  8. Под пунктом Сохранить ответ как выберите, где вы хотите хранить ответ на HTTP-запрос, либо создав новую переменную, либо выбрав существующую.

Отправка содержимого в тексте HTTP-запроса

  1. В разделе Заголовки и текст на узле выберите кнопку Изменить, которая открывает панель Свойства HTTP-запроса.

  2. В разделе Текст выберите соответствующий тип контента. По умолчанию для Текст установлено значение Нет содержимого, то есть в тексте запроса не должно быть никакого содержимого, что чаще всего используется с запросом GET. Чтобы добавить содержимое в текст, выберите один из доступных вариантов.

    Снимок экрана раскрывающегося списка вариантов контента текста

    • Содержимое JSON: содержимое JSON позволяет вам предоставить объект JSON в теле запроса. Этот объект часто используется при выполнении запросов POST или PUT. При выборе этого варианта редактор позволяет вам вводить содержимое JSON.

      Вы также можете указать содержимое JSON с помощью Power Fx, что позволяет включать динамические значения и ссылочные переменные. Выберите кнопку Изменить JSON, выберите Формула, затем введите объект Power Fx (любой существующий введенный JSON преобразуется в объект Power Fx), который преобразуется в JSON при выполнении HTTP-запроса.

      Снимок экрана с содержимым JSON, выбранным для типа контента текста запроса.

    • Необработанный контент: необработанное содержимое позволяет вставить строку данных в тело запроса, и эта строка может иметь любой указанный вами тип контента. Необработанное содержимое вводится с использованием формулы Power Fx, например, строкового содержимого, показанного в следующем примере.

      Снимок экрана с содержимым RAW, выбранным для типа контента текста запроса.

Обработка ошибок и время ожидания

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

По умолчанию функция "вызывает ошибку". Это означает, что когда HTTP-запрос возвращает ошибку или не выполняется, помощник останавливает свою работу и запускает системную тему Ошибка, отображая сообщение об ошибке.

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

Чтобы настроить поведение обработки ошибок.

  1. В разделе Заголовки и текст на узле выберите кнопку Изменить, которая открывает панель Свойства HTTP-запроса.

  2. Выберите желаемое поведение из раскрывающегося списка Обработка ошибок.

  3. Если вы выберете Продолжить при ошибке, настройте переменные Код состояния и Текст ответа об ошибке, либо создавая новые переменные, либо выбирая существующие переменные из средства выбора.

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

В этом примере кода если HTTP-запрос завершается неудачей, помощник сохраняет код состояния HTTP в переменной Topic.StatusCode, а текст ответа — в переменной Topic.ErrorResponse. Помощник переходит к следующим шагам в теме.

Переменная Ответ с сообщением об ошибке имеет тип Любой. Вы можете использовать Узел анализа значения, чтобы преобразовать эту переменную в запись Power Fx.

Панель свойств также содержит свойство Время ожидания запроса истекло, которое принимает значение в миллисекундах. Значение по умолчанию — 30 секунд, но при необходимости вы можете изменить это значение.