Отправка HTTP-запроса
Действие «Отправка HTTP-запроса» подключает ваш рабочий процесс к веб-серверу или URL-адресу и отправляет HTTP-запросы.
После того как Flow отправит ваш HTTP-запрос, он не более 30 секунд ожидает код ответа HTTP. Если Flow не получит ответ в течение 30 секунд, он закроет соединение с вашим приложением. Позднее он повторит запрос.
На этой странице
Поля
Действие «Отправка HTTP-запроса» содержит следующие поля.
| Поле | Описание |
|---|---|
| Метод HTTP | Метод отправляемого HTTP-запроса. Отправка HTTP-запроса Действие поддерживает следующие методы:
|
| URL | URL-адрес сервера, на который отправляется HTTP-запрос. |
| Заголовки | Пара «ключ-значение» для HTTP-запроса. Можно ввести несколько пар «ключ-значение». |
| Тело | Контент для отправки на сервер. |
| При ошибке клиента (ответ 4XX) | При получении кода ответа , указывающего на ошибку клиента, Flow выполнит следующие действия:
|
| При ошибке сервера (ответ 5XX или 429) | При получении кода ответа , указывающего на ошибку сервера, Flow выполнит следующие действия:
|
Возвращаемые данные
Чтобы получить доступ к возвращаемым данным на шагах, следующих за этим действием, используйте переменную sendHttpRequest, которая содержит все детали HTTP-ответа. При необходимости можно использовать действие «Выполнение кода», чтобы проанализировать тело ответа для использования на последующих шагах рабочего процесса, как показано в примере ниже.
Если действие «Отправить HTTP-запрос» используется в одном рабочем процессе несколько раз, к имени переменной добавляется цифра. Например, в рабочем процессе, где действие «Отправить HTTP-запрос» применяется дважды, первой переменной для возвращаемых данных будет sendHttpRequest, а второй — sendHttpRequest1. Это имя нельзя изменить.
Коды ответов
В таблице ниже описано, как Flow обрабатывает код ответа HTTP после его получения.
| Код ответа HTTP | Как Flow обрабатывает код ответа |
|---|---|
| 2XX или 3XX — успех | Flow помечает HTTP-запрос как успешный и выполняет последующие действия в рабочем процессе. |
| Ошибки 4XX, ошибки 5XX и 429 | В зависимости от настроек действия Flow выполнит следующие действия:
|
| Другой код ответа | Если ответ возвращает код, не описанный в этой таблице, или истекает время ожидания при повторных попытках, Flow помечает HTTP-запрос как неудачный, завершает запуск рабочего процесса с ошибкой и не выполняет последующие действия. |
Секреты
Секреты используются для безопасного хранения конфиденциальной информации, применяемой в действии «Отправить HTTP-запрос», например токенов доступа или паролей. Секреты создаются и управляются на странице Flow > «Настройки». Секрет содержит псевдоним, значение и описание. Сослаться на секрет можно как на переменную Liquid (например, {{secrets.handle}}) или с помощью параметра «Добавить секрет» при настройке полей URL, значения заголовка или тела запроса. Значения секретов никогда не отображаются в интерфейсе Flow и скрываются в журналах запусков рабочего процесса.
Триггеры
Действие «Отправка HTTP-запроса» можно использовать в любом рабочем процессе.
Примеры
Пример 1. Отправка HTTP-запроса во внешнюю службу
В этом примере показано, как с помощью Flow отправить HTTP-запрос во внешнюю службу.
Прежде чем начать, настройте для тестирования веб-сервис, который получает HTTP-запросы и сохраняет их данные, например Request Catcher. Соблюдайте осторожность при отправке конфиденциальных данных (например, паролей или API-ключей) в сторонние сервисы.
Шаги:
- Выберите триггер «Статус товара обновлен», который позволяет протестировать этот рабочий процесс путем изменения статуса товара.
- Добавьте действие «Отправить HTTP-запрос» в свой рабочий процесс и подключите его к триггеру. Затем откройте панель конфигурации, нажав на шаг «Отправить HTTP-запрос» .
- В поле HTTP Method введите
POST. - В поле URL введите URL для тестирования, например
https://yourFlowTest.requestcatcher.com/test. - В разделе Headers введите заголовок с ключом
Content-Typeи значениемtext/plain. - В разделе Body введите
{{product.title}}и{{product.status}}, чтобы отправить название и обновлённый статус товара из триггера.
- В поле HTTP Method введите
- Активируйте рабочий процесс.
- Протестируйте его, изменив статус товара, например с «Черновик» на «Активный».
- Просмотрите результаты во внешнем сервисе для тестирования, например
https://yourFlowTest.requestcatcher.com/в данном примере.
Пример 2. Использование действия «Запустить код» для анализа HTTP-ответа
В этом примере с помощью Flow отправляется HTTP-запрос во внешний сервис, а действие «Запустить код» используется для анализа тела HTTP-ответа, чтобы использовать его на последующих шагах рабочего процесса.
Прежде чем начать, выберите веб-сервис, который получает HTTP-запросы и возвращает данные, например Postman Echo. Соблюдайте осторожность при отправке конфиденциальных данных (например, паролей или API-ключей) в сторонний сервис.
Шаги:
Выберите триггер «Статус товара обновлен», который позволяет протестировать этот рабочий процесс путем изменения статуса товара.
Добавьте действие «Отправить 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}}" }
Добавьте действие «Запустить код» в свой рабочий процесс и подключите его к действию «Отправить 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 } }
Добавьте действие «Записать выходные данные» в свой рабочий процесс и подключите его к действию «Запустить код». Затем откройте панель конфигурации, нажав на шаг «Запустить код».
В поле «Выходные данные» укажите переменные, возвращаемые на шаге «Запустить код», например:
Title from HTTP response: {{runCode.productTitle}} Status from HTTP response: {{runCode.productStatus}}
Активируйте рабочий процесс.
Протестируйте его, изменив статус товара, например с «Черновик» на «Активный».
Просмотрите результат запуска на странице Flow / Недавние запуски и убедитесь, что значения на шаге «Записать выходные данные» совпадают со значениями, возвращёнными действием «Отправить HTTP-запрос».
Шаблоны
Уведомление поставщика услуг по выполнению заказов о предстоящих заказах
Отправка HTTP-запроса вашему поставщику услуг по выполнению заказов, когда заказы в Order Tagger помечаются тегом «Warehouse». Просмотреть шаблон
Отправка новых заказов в Airtable
Отправка заказов в Airtable при создании заказа. Просмотреть шаблон
Отправка всех существующих и новых товаров в Airtable
Каждые 10 минут выполняется поиск товаров, которые не были отправлены в Airtable (по тегу), и их отправка в Airtable. Просмотреть шаблон
Партионное обновление товаров на основе данных о товарах, хранящихся в Airtable
Партионное обновление товаров на основе данных о товарах, хранящихся в Airtable. Просмотреть шаблон
Уведомление клиентов об истечении срока действия подарочных карт с помощью SendGrid
Каждый день выполняется поиск всех подарочных карт, срок действия которых истекает через 7 дней, и отправка электронных писем клиентам с помощью SendGrid. Просмотреть шаблон
Отправка электронного письма с помощью SendGrid, когда клиенты размещают заказ на товар по индивидуальному заказу
Отправка транзакционного электронного письма с помощью SendGrid, когда клиент размещает заказ на товар по индивидуальному заказу. Просмотреть шаблон