Надіслати HTTP-запит
Дія Надіслати HTTP-запит з’єднує ваш робочий процес із вебсервером або URL-адресою та надсилає HTTP-запити.
Після того, як Flow надсилає ваш HTTP-запит, він очікує код відповіді HTTP щонайбільше 30 секунд. Якщо Flow не отримує відповідь через 30 секунд, він закриває з'єднання з вашим застосунком. Згодом він повторює запит.
Поля
Дія Надіслати HTTP-запит містить наведені нижче поля.
| Поле | Опис |
|---|---|
| HTTP-метод | Метод HTTP-запиту для надсилання. Дія Надіслати HTTP-запит підтримує такі методи:
|
| URL-адреса | URL-адреса сервера, на який надсилається HTTP-запит. |
| Заголовки | Пара ключ-значення для HTTP-запиту. Можна вказати кілька пар ключ-значення. |
| Тіло | Контент, який надсилається на сервер. |
| У разі помилки клієнта (відповідь 4XX) | Під час отримання коду відповіді , який вказує на помилку клієнта, Flow виконає таку дію:
|
| У разі помилки сервера (відповідь 5XX або 429) | Під час отримання коду відповіді , який вказує на помилку сервера, Flow виконає таку дію:
|
Повернені дані
Щоб отримати доступ до повернених даних на кроках після цієї дії, використовуйте змінну з іменем sendHttpRequest, яка містить усі деталі HTTP-відповіді. За потреби використовуйте дію Виконати код, щоб проаналізувати body (тіло) відповіді для використання в наступних кроках робочого процесу, наприклад у прикладі нижче.
Якщо дія Надіслати 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 введіть
POST. - У полі URL-адреса введіть URL-адресу для тестування, наприклад
https://yourFlowTest.requestcatcher.com/test. - У розділі Заголовки введіть заголовок, де Ключ —
Content-Type, а Значення —text/plain. - У розділі Тіло введіть
{{product.title}}і{{product.status}}, щоб надіслати назву й оновлений статус товару з тригера.
- У полі Метод HTTP введіть
- Активуйте робочий процес.
- Протестуйте його, змінивши статус товару, наприклад із Чернетка на Активний.
- Перевірте результати в зовнішньому сервісі для тестування, наприклад
https://yourFlowTest.requestcatcher.com/(у цьому прикладі).
Приклад 2. Використання дії «Запустити код» для розбору HTTP-відповіді
У цьому прикладі Flow використовується для надсилання HTTP-запиту до зовнішнього сервісу, а дія Запустити код — для розбору параметра body HTTP-відповіді з метою використання на подальших кроках робочого процесу.
Перш ніж почати, виберіть вебсервіс, який отримує HTTP-запити та повертає дані (наприклад, Postman Echo). Будьте обережні під час надсилання чутливих даних (як-от паролів або ключів API) до сторонніх сервісів.
Кроки:
Виберіть тригер Статус товару оновлено, який дає змогу протестувати цей робочий процес, змінивши статус товару.
Додайте дію Надіслати HTTP-запит до робочого процесу та з'єднайте її з тригером. Потім відкрийте панель налаштувань, натиснувши крок Надіслати HTTP-запит.
У полі Метод HTTP введіть
POST.У полі URL-адреса введіть URL-адресу для тестування, наприклад
https://postman-echo.com/post.У розділі Заголовки введіть заголовок, де Ключ —
Content-Type, а Значення —application/json.У розділі Тіло введіть приклад JSON для повернення до робочого процесу, наприклад:
{ "productTitle": "{{product.title}}", "productStatus": "{{product.status}}" }
Додайте дію Запустити код до робочого процесу та з'єднайте її з дією Надіслати HTTP-запит. Потім відкрийте панель налаштувань, натиснувши крок Запустити код.
У полі Визначити вхідні дані вкажіть параметр
body, який повертає об'єкт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-запит своєму постачальнику послуг виконання замовлень, коли замовлення отримують тег «Warehouse» у додатку Order Tagger. Переглянути шаблон
Надіслати нові замовлення в Airtable
Надсилайте замовлення в Airtable після їхнього створення. Переглянути шаблон
Надіслати всі наявні та нові товари в Airtable
Кожні 10 хвилин шукайте товари, які ще не надіслано в Airtable (за тегом), та надсилайте їх. Переглянути шаблон
Оновлювати товари партіями на основі даних про товари, що зберігаються в Airtable
Оновлюйте товари партіями на основі даних про товари, що зберігаються в Airtable. Переглянути шаблон
Сповістити клієнтів про подарункові картки, термін дії яких закінчується, за допомогою SendGrid
Щодня отримуйте всі подарункові картки, термін дії яких закінчується через 7 днів, і надсилайте електронні листи клієнтам за допомогою SendGrid. Переглянути шаблон
Надіслати електронний лист через SendGrid, коли клієнт розміщує замовлення на індивідуальну одиницю
Надсилайте транзакційний електронний лист через SendGrid, коли клієнт розміщує замовлення на індивідуальну одиницю. Переглянути шаблон