Response
Общая информация
Во вкладке Response, настраивается парсер ответа на выполненный HTTP запрос, при необходимости. Созданные поля в этой вкладке, будут забирать значения из ответа и сохранять их в поля самой сущности.
В отличии от вкладки Request, в правом поле вместо инпута, выводится селект, в котором выбирается конкретное поле сущности
Content-type
Указывается формат ответа запроса, в котором он придёт. Доступны следующие варианты:
JSON
XML
urlEncoded
В Response формат запроса указывается отдельно, так как бывают случаи, когда запрос уходит в urlEncoded, а ответ приходит в JSON.
Ответ будет ожидаться строго в том формате, какой выбран в виджете, в случае если ответ придёт в другом формате, парсинг работать не будет.
Путь к массиву данных
Данное поле используется в том случае, если в ответе данные приходят в массиве объектов и их может быть неограниченное количество (например, API триггеры, которые делают запрос на получение списка сущностей).
Если данные в ответе приходят в таком виде:
{
"data":[
{
"name":"Иван",
"phone":"+79681112233"
}
{
"name":"Василий",
"phone":"+79681112244"
}
]
}
И необходимо получить оба объекта, то ставится галочка “Возвращать массив данных”, в поле указывается маппинг к нужному массиву, в данном случае это data. Далее в созданных полях, маппинг указывать можно уже без пути к этому массиву.
Так же, можно поставить галочку но оставить поле пустым, это означает, что данные приходят в корне массива, пример:
[
{
"name":"Иван",
"phone":"+79681112233"
}
{
"name":"Василий",
"phone":"+79681112244"
}
]
Триггер с такой настройкой, получив данный ответ, запустится ровно столько раз, сколько объектов придёт в ответе
Заголовки
При необходимости получения значения заголовков, в этой вкладке добавляются поля. В каждом поле слева указывается ключ, справа выбирается поле сущности, куда нужно сохранить полученное значение. Например, когда вам нужно получить значение заголовка
-H "dateTimeEvent: 2021-08-09 19:00:00"
В левом поле указывается ключ dateTimeEvent а в правом из селекта выбирается поле, куда надо сохранить значение:
Параметры
Добавляются поля, которые необходимо получить уже из самого тела запроса.
В левом поле прописывается маппинг к ключу переменной, значение которой необходимо получить, правило маппинга аналогично маппингу во вкладке Request. В правом поле в селекте выбирается поле сущности, в которое сохранится полученное значение.
Так же, у полей есть дополнительная галочка Находится в массиве. Данная галочка указывает на то, что переменная находится в том массиве, который указан в поле Путь к массиву данных, и маппинг указывать нужно уже без пути к этому массиву.
Например, если ответ выглядит таким образом:
{
"id": 12345,
"data":[
{
"name":"Иван",
"phone":"+79681112233"
}
{
"name":"Василий",
"phone":"+79681112244"
}
]
}
То указав путь к массиву, можно создать три поля. У поля, которое ловит значение id, галочку ставить не нужно, а у остальных галочку поставить необходимо:
Таким образом, данные будут получены два раза, каждый раз имя и телефон будут уникальные, а ID при этом в обоих случаях будет присвоен один, из корня ответа.
Если поле которое выбрано, куда сохраняется значение, будет с типом DateTime или Phone, то у такого поля появляется шестерёнка с дополнительными настройками, аналогично типам переменных из вкладки Request. Данные поля необязательные для заполнения, если их не заполнять, телефон придёт в таком виде, как его прислала система, а дата попытается автоматически преобразоваться в формат Y-m-d H:i:s, даже если придёт unixtime. Если формат даты нестандартный, необходимо прописать его формат
Обновлено на: 28/11/2022
Спасибо!