Статьи по: App Integrator

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

Была ли эта статья полезна?

Поделитесь своим отзывом

Отменить

Спасибо!