Блок HTTP-запрос
Блок HTTP-запрос в J‑Graph позволяет боту обмениваться данными со сторонними сервисами по протоколу HTTP, а также сохранять полученные данные в переменные.

Настройки блока
Чтобы добавить блок в сценарий:
- Выберите HTTP-запрос в списке блоков действий.
- Задайте обязательные параметры запроса:
- Метод запроса:
GETPOSTPUTDELETE
- URL, на который будет отправляться запрос.
- Метод запроса:
Вы можете задать дополнительные настройки запроса на вкладках Response, Body и Headers.
URL запроса
По указанному URL бот будет отправлять и получать данные.
В URL запроса вы можете использовать подстановки значений в скобках {{}}.
Внутри скобок может находиться любое допустимое выражение на JavaScript — например, ссылка на встроенную переменную:
-
{{$session.url}}(если в переменной хранится полный URL запроса) -
https://{{$injector.hostname}}/endpoint -
https://example.com?query={{$request.query}}подсказкаУкажите в качестве переменной$request.query, чтобы передать в URL текст последнего запроса клиента.
Бот автоматически подставит значения выражений в URL перед выполнением запроса.
Заголовки запроса
На вкладке Headers вы можете добавить HTTP-заголовки запроса, заполнив поля Заголовок и Значение. В заголовках вы также можете использовать переменные.
Тело запроса
На вкладке Body вы можете добавить тело запроса. Здесь можно указывать данные в любом формате (JSON, XML, произвольный текст), а также добавлять переменные.
В примере тело запроса указано в формате JSON.
Бот автоматически подставит в тело запроса значения переменных $client.name и $client.age.
$client.name указана в кавычках, потому что она содержит данные строкового типа, а $client.age без кавычек, потому что содержит число.Обработка ответа
В ответ на запрос сервер обычно возвращает данные, которые можно обработать или вывести клиенту. Для этого на вкладке Response вы можете указать, какие данные из ответа вы хотите сохранить в новые переменные.
Например, по адресу https://api.forismatic.com/api/1.0/?method=getQuote&format=json&lang=ru сервер возвращает следующий ответ:
{
"quoteText": "Текст цитаты",
"quoteAuthor": "Автор цитаты",
"senderName": "Кто опубликовал цитату",
"senderLink": "Ссылка на профиль публикатора цитаты",
"quoteLink": "Ссылка на цитату"
}
JAICP сохраняет этот ответ в переменную $httpResponse.
Поскольку это ответ в формате JSON, JAICP автоматически конвертирует его в JavaScript-объект, с которым сценарий может далее работать.
$httpResponse как строка без какой-либо обработки.Чтобы сохранить данные из определенного поля объекта, на вкладке Response укажите:
-
Имя переменной. Значение будет сохранено в сценарии как
$session.<имя переменной>. -
Значение — выражение с использованием
$httpResponseдля доступа к нужным полям ответа.предупреждениеВ имени переменной используйте символы Aa–Zz, _, 0–9. Первым символом в имени должна быть буква. Нельзя использовать зарезервированные слова JavaScript.
Если запрос будет выполнен успешно,
бот создаст переменные $session.quoteText и $session.quoteAuthor и запишет в них значения из ответа сервера.
Переходы из блока
От блока HTTP-запрос можно провести до двух связей в другие шаги сценария:
- Успешная отправка, если в ответ на запрос сервер вернул код ответа от 200 до 299.
- Ошибка, если сервер вернул любой другой ответ.
$session.httpStatus.