Отправка HTTP-запроса

Действие «Отправка HTTP-запроса» подключает ваш рабочий процесс к веб-серверу или URL-адресу и отправляет HTTP-запросы.

После того как Flow отправит ваш HTTP-запрос, он не более 30 секунд ожидает код ответа HTTP. Если Flow не получит ответ в течение 30 секунд, он закроет соединение с вашим приложением. Позднее он повторит запрос.

Поля

Действие «Отправка HTTP-запроса» содержит следующие поля.

Поля, используемые в действии «Отправка HTTP-запроса».
ПолеОписание
Метод HTTPМетод отправляемого HTTP-запроса. Отправка HTTP-запроса Действие поддерживает следующие методы:
  • Get — отправляет запрос на получение информации с сервера.
  • Delete — удаляет ресурс с сервера.
  • Head — получает заголовки HTTP-ответа сервера.
  • Options — получает параметры и функции, поддерживаемые сервером.
  • Patch — частично обновляет ресурс на сервере.
  • Put — обновляет ресурс на сервере.
  • Post — создаёт или заменяет ресурс на сервере.
URLURL-адрес сервера, на который отправляется HTTP-запрос.
ЗаголовкиПара «ключ-значение» для HTTP-запроса. Можно ввести несколько пар «ключ-значение».
ТелоКонтент для отправки на сервер.
При ошибке клиента (ответ 4XX)При получении кода ответа , указывающего на ошибку клиента, Flow выполнит следующие действия:
  • Повторить — повторять попытку в течение 24 часов до получения другого кода ответа или до истечения времени ожидания.
  • Завершить с ошибкой — завершить запуск рабочего процесса с ошибкой.
  • Игнорировать — проигнорировать ошибку и продолжить запуск рабочего процесса.
При ошибке сервера (ответ 5XX или 429)При получении кода ответа , указывающего на ошибку сервера, Flow выполнит следующие действия:
  • Повторить — повторять попытку в течение 24 часов до получения другого кода ответа или до истечения времени ожидания.
  • Завершить с ошибкой — завершить запуск рабочего процесса с ошибкой.
  • Игнорировать — проигнорировать ошибку и продолжить запуск рабочего процесса.

Возвращаемые данные

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

Если действие «Отправить HTTP-запрос» используется в одном рабочем процессе несколько раз, к имени переменной добавляется цифра. Например, в рабочем процессе, где действие «Отправить HTTP-запрос» применяется дважды, первой переменной для возвращаемых данных будет sendHttpRequest, а второй — sendHttpRequest1. Это имя нельзя изменить.

Коды ответов

В таблице ниже описано, как Flow обрабатывает код ответа HTTP после его получения.

Как Flow обрабатывает коды ответов HTTP.
Код ответа HTTPКак Flow обрабатывает код ответа
2XX или 3XX — успехFlow помечает HTTP-запрос как успешный и выполняет последующие действия в рабочем процессе.
Ошибки 4XX,
ошибки 5XX и 429
В зависимости от настроек действия Flow выполнит следующие действия:
  • Повторить — повторять попытку в течение 24 часов до получения другого кода ответа или до истечения времени ожидания.
  • Завершить с ошибкой — завершить запуск рабочего процесса с ошибкой.
  • Игнорировать — проигнорировать ошибку и продолжить запуск рабочего процесса.
Другой код ответаЕсли ответ возвращает код, не описанный в этой таблице, или истекает время ожидания при повторных попытках, Flow помечает HTTP-запрос как неудачный, завершает запуск рабочего процесса с ошибкой и не выполняет последующие действия.

Секреты

Секреты используются для безопасного хранения конфиденциальной информации, применяемой в действии «Отправить HTTP-запрос», например токенов доступа или паролей. Секреты создаются и управляются на странице Flow > «Настройки». Секрет содержит псевдоним, значение и описание. Сослаться на секрет можно как на переменную Liquid (например, {{secrets.handle}}) или с помощью параметра «Добавить секрет» при настройке полей URL, значения заголовка или тела запроса. Значения секретов никогда не отображаются в интерфейсе Flow и скрываются в журналах запусков рабочего процесса.

Триггеры

Действие «Отправка HTTP-запроса» можно использовать в любом рабочем процессе.

Примеры

Пример 1. Отправка HTTP-запроса во внешнюю службу

В этом примере показано, как с помощью Flow отправить HTTP-запрос во внешнюю службу.

Прежде чем начать, настройте для тестирования веб-сервис, который получает HTTP-запросы и сохраняет их данные, например Request Catcher. Соблюдайте осторожность при отправке конфиденциальных данных (например, паролей или API-ключей) в сторонние сервисы.

Шаги:

  1. Выберите триггер «Статус товара обновлен», который позволяет протестировать этот рабочий процесс путем изменения статуса товара.
  2. Добавьте действие «Отправить HTTP-запрос» в свой рабочий процесс и подключите его к триггеру. Затем откройте панель конфигурации, нажав на шаг «Отправить HTTP-запрос» .
    • В поле HTTP Method введите POST.
    • В поле URL введите URL для тестирования, например https://yourFlowTest.requestcatcher.com/test.
    • В разделе Headers введите заголовок с ключом Content-Type и значением text/plain.
    • В разделе Body введите {{product.title}} и {{product.status}}, чтобы отправить название и обновлённый статус товара из триггера.
  3. Активируйте рабочий процесс.
  4. Протестируйте его, изменив статус товара, например с «Черновик» на «Активный».
  5. Просмотрите результаты во внешнем сервисе для тестирования, например https://yourFlowTest.requestcatcher.com/ в данном примере.

Пример 2. Использование действия «Запустить код» для анализа HTTP-ответа

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

Прежде чем начать, выберите веб-сервис, который получает HTTP-запросы и возвращает данные, например Postman Echo. Соблюдайте осторожность при отправке конфиденциальных данных (например, паролей или API-ключей) в сторонний сервис.

Шаги:

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

  2. Добавьте действие «Отправить HTTP-запрос» в свой рабочий процесс и подключите его к триггеру. Затем откройте панель конфигурации, нажав на шаг «Отправить HTTP-запрос».

    • В поле HTTP Method введите POST.

    • В поле URL введите URL для тестирования, например https://postman-echo.com/post.

    • В разделе Headers введите заголовок с ключом Content-Type и значением application/json.

    • В разделе Body введите пример JSON, который будет возвращён в рабочий процесс, например:

      {
          "productTitle": "{{product.title}}",
          "productStatus": "{{product.status}}"
      }
  3. Добавьте действие «Запустить код» в свой рабочий процесс и подключите его к действию «Отправить HTTP-запрос». Затем откройте панель конфигурации, нажав на шаг «Запустить код».

    • В поле «Определить входные данные» укажите тело, возвращаемое объектом sendHTTPrequest, например:

      query{
        sendHttpRequest {
          body
        }
      }
    • В поле «Определить выходные данные» укажите данные, определённые в схеме выходных данных, например:

      type Output {
        productTitle: String!
        productStatus: String!
      }
    • В поле «Написать код» проанализируйте ответ с помощью метода JSON.parse и убедитесь, что возвращаемые данные соответствуют структуре и типам, определённым в схеме выходных данных, например:

      export default function main(input) {
        const body = JSON.parse(input.sendHttpRequest.body);
        console.log("body is", body);
        return {
          productTitle: body.data.productTitle,
          productStatus: body.data.productStatus
        }
      }
  4. Добавьте действие «Записать выходные данные» в свой рабочий процесс и подключите его к действию «Запустить код». Затем откройте панель конфигурации, нажав на шаг «Запустить код».

    • В поле «Выходные данные» укажите переменные, возвращаемые на шаге «Запустить код», например:

      Title from HTTP response: {{runCode.productTitle}}
      Status from HTTP response: {{runCode.productStatus}}
  5. Активируйте рабочий процесс.

  6. Протестируйте его, изменив статус товара, например с «Черновик» на «Активный».

  7. Просмотрите результат запуска на странице Flow / Недавние запуски и убедитесь, что значения на шаге «Записать выходные данные» совпадают со значениями, возвращёнными действием «Отправить HTTP-запрос».

Шаблоны

Уведомление поставщика услуг по выполнению заказов о предстоящих заказах

Отправка HTTP-запроса вашему поставщику услуг по выполнению заказов, когда заказы в Order Tagger помечаются тегом «Warehouse». Просмотреть шаблон

Отправка новых заказов в Airtable

Отправка заказов в Airtable при создании заказа. Просмотреть шаблон

Отправка всех существующих и новых товаров в Airtable

Каждые 10 минут выполняется поиск товаров, которые не были отправлены в Airtable (по тегу), и их отправка в Airtable. Просмотреть шаблон

Партионное обновление товаров на основе данных о товарах, хранящихся в Airtable

Партионное обновление товаров на основе данных о товарах, хранящихся в Airtable. Просмотреть шаблон

Уведомление клиентов об истечении срока действия подарочных карт с помощью SendGrid

Каждый день выполняется поиск всех подарочных карт, срок действия которых истекает через 7 дней, и отправка электронных писем клиентам с помощью SendGrid. Просмотреть шаблон

Отправка электронного письма с помощью SendGrid, когда клиенты размещают заказ на товар по индивидуальному заказу

Отправка транзакционного электронного письма с помощью SendGrid, когда клиент размещает заказ на товар по индивидуальному заказу. Просмотреть шаблон