HTTP запрос

Рабочий процесс: узел HTTP-запросаCommunity Edition+

Введение

Когда нужно взаимодействовать с другой веб-системой, можно использовать узел «HTTP запрос». При выполнении этот узел отправляет HTTP запрос на указанный адрес в соответствии с конфигурацией. Он может передавать данные в формате JSON или application/x-www-form-urlencoded для взаимодействия с внешними системами.

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

Установка

Встроенный плагин, установка не требуется.

Создание узла

В интерфейсе настройки рабочего процесса нажмите кнопку плюса ("+") в потоке, чтобы добавить узел «HTTP запрос»:

Добавление узла HTTP запроса

Настройка узла

Настройка узла HTTP запроса

Метод запроса

Доступные HTTP-методы запроса: GET, POST, PUT, PATCH, DELETE.

URL запроса

URL HTTP-сервиса должен включать протокол (http:// или https://). Рекомендуется использовать https://.

Формат данных запроса

Это Content-Type в заголовке запроса. Поддерживаемые форматы см. в разделе «Тело запроса».

Настройка заголовков запроса

Пары ключ-значение для секции заголовков запроса. Значения могут использовать переменные контекста рабочего процесса.

Совет

Заголовок Content-Type настраивается через формат данных запроса. Заполнять его здесь не нужно, переопределение не сработает.

Параметры запроса

Пары ключ-значение для параметров строки запроса. Значения могут использовать переменные контекста рабочего процесса.

Тело запроса

Тело запроса. Поддерживаемые форматы зависят от выбранного Content-Type.

application/json

Поддерживается стандартный JSON-текст. Переменные контекста рабочего процесса можно вставлять кнопкой переменных в правом верхнем углу текстового редактора.

Совет

Переменные должны использоваться внутри JSON-строки, например: { "a": "{{$context.data.a}}" }.

application/x-www-form-urlencoded

Формат пар ключ-значение. Значения могут использовать переменные контекста рабочего процесса. При наличии переменных они будут разобраны как строковый шаблон и объединены в итоговое строковое значение.

application/xml

Поддерживается стандартный XML-текст. Переменные контекста рабочего процесса можно вставлять кнопкой переменных в правом верхнем углу текстового редактора.

multipart/form-data (1.8.0+)

Поддерживаются пары ключ-значение для form-data. Файлы можно загружать, когда тип данных задан как файловый объект. Файлы выбираются только через переменные существующих файловых объектов в контексте, например результаты запроса по файловой коллекции или связанные данные из ассоциированной файловой коллекции.

Совет

При выборе файловых данных убедитесь, что переменная соответствует одному файловому объекту, а не списку файлов (в запросах «один-ко-многим» или «многие-ко-многим» значение поля связи будет массивом).

Настройки тайм-аута

Когда запрос долго не отвечает, настройка тайм-аута позволяет отменить его выполнение. Если запрос завершился по тайм-ауту, текущий рабочий процесс досрочно завершится со статусом ошибки.

Игнорировать сбои

Узел «HTTP запрос» считает успешными стандартные HTTP-статусы от 200 до 299 включительно, а остальные — ошибочными. Если включена опция «Игнорировать неудачные запросы и продолжить рабочий процесс», последующие узлы рабочего процесса будут выполняться даже при ошибке запроса.

Использование результата ответа

Результат ответа HTTP запроса можно разобрать узлом Вычисление JSON для использования в последующих узлах.

Начиная с версии v1.0.0-alpha.16, три части результата ответа узла «HTTP запрос» можно использовать как отдельные переменные:

  • Статус-код ответа
  • Заголовки ответа
  • Данные ответа

Использование результата ответа HTTP запроса

Статус-код ответа обычно представлен стандартным HTTP-кодом в числовом виде, например 200, 403 и т.д. (как возвращает провайдер сервиса).

Заголовки ответа имеют JSON-формат. И заголовки, и JSON-данные ответа перед использованием нужно разобрать через узел «Вычисление JSON».

Пример

Например, узел «HTTP запрос» можно использовать для интеграции с облачной платформой отправки SMS-уведомлений. Конфигурация API облачных SMS может выглядеть так (параметры нужно адаптировать по документации конкретного API):

Пример конфигурации HTTP запроса

Когда рабочий процесс запускает этот узел, он вызывает API SMS с настроенным содержимым. Если запрос успешен, SMS будет отправлено через облачный SMS-сервис.