Статьи по: App Integrator

Request

Общая информация



Во вкладке Request, происходит настройка структуры исходящего HTTP запроса. Настраиваются все необходимые параметры, добавляются при необходимости заголовки и параметры. Заголовки и параметры добавляются как отдельные поля, заполняя их ключ - значение и тип.




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



Выбирается из списка, нужный метод отправки запроса. Доступные методы:

GET

POST

PUT

MERGE

PATCH

DELETE

URL запроса



Прописывается адрес ендпоинта, на который будет передан HTTP запрос. В это поле можно прописать как статичный текст, так и подставить динамические переменные (поля сущности), например передавать в урле определённые айдишники между слешами / /




Так же, в случае если у вас используется POST запрос, но при этом нужно передать некоторые GET параметры, их можно прописать дополнительно в самом урле в их искомом виде, пример:




URL должен быть обязательно валидным и начинаться с https:// или http://

Все GET параметры в урле (после символа ? ) будут проходить процедуру urlencode автоматически.

Content-type



Указывается формат запроса, в котором он будет отправлен. Доступны следующие варианты:

JSON

XML

urlEncoded

В запросе автоматически подставится нужный заголовок Content-type

Авторизация



В селекте выбирается одна из созданных в приложении авторизаций. Выбрав авторизацию, авторизационные данные в запросе подставляются автоматически, каждый раз дополнительно их указывать в не нужно. Необязательный параметр.

Заголовки



При необходимости отправления дополнительных заголовков, в этой вкладке добавляются поля. В каждом поле слева указывается ключ, справа значение этого заголовка. Например, когда вам нужно отправить заголовок в таком виде:

curl -H "Action: create"

Необходимо нажать кнопку Добавить поле , левое поле заполнить значением Action , правое значением create




В правом поле так же можно использовать динамические параметр (поля сущности), которые будут заполняться в самой связке.

Параметры



Является самим телом запроса. Каждое поле, которое будет тут добавлено, сформирует в выбранном формате и методе тело запроса. Если метод выбран GET, то все поля созданные на этой вкладке, автоматически добавятся в урл как GET параметры.

Аналогично вкладке заголовков, добавляются поля, слева указывается маппинг ключа переменной, посередине прописывается значение и справа выбирается тип переменной, которая будет передана.

Важно в левом поле указывать маппинг правильно. Для примера возьмём JSON, если нужно заполнить переменную name и JSON выглядит так:


{

 "name":"Иван"

}



Ключ указывается name .

Если нужная переменная находится в объекте и нужно её заполнить, то путь к объекту указывается через точку. Пример JSON:

{

 "contact":{

  "name":"Иван"

  }

}



Теперь, что бы заполнить переменную name, необходимо маппинг ключа в левом поле указать в таком виде contact.name

Если переменная находится в массиве объектов и при этом необходимо заполнить конкретный объект, то маппинг указывается через точку но с указанием позиции объекта в массиве (исчисление начинается с нуля). Пример JSON:


{

 "contacts":[

  {

   "name":"Иван"

  },

  {

   "name":"Василий"

  }

 ]

}


В данном случае, если необходимо заполнить name в первом объекте, маппинг указывается contacts.0.name , если необходимо заполнить второй объект, маппинг указывается contacts.1.name

Данный сценарий возможен, когда необходимо заполнить массив объектов, но при этом количество объектов в массиве предсказуемое, в ином случае, нужно в полях сущности создать строковую секцию и в параметрах создать поле, выбрав тип поле “Массив объектов”, тогда объектов будет создано столько, сколько их попадёт в саму строковую секцию

Пример заполнения:





Типы переменных



В правом поле, во вкладке параметры, выбирается тип переменной, в каком виде её нужно передать в запросе. Доступны следующие варианты:

String - Строка ””

Int - Целое число

Decimal - Дробное число

Boolean - Отправляется true/false

dateTime - Тип даты и времени. При выборе данного типа, мы запоминаем, что это поле является именно датой и временем и его необходимо дополнительно конвертировать в нужный формат. В шестерёнке появляются дополнительные поля, в которых можно указать формат и таймзону отправляемой даты, а так же окончательный формат переменной (int или string).

Phone - Ещё один внутренний тип. При выборе данного типа, в шестерёнке добавляются поля с форматом и окончательным типом переменной (int или string). В формате выбирается маска номера телефона, к которой номер будет приводиться всегда. Данный сценарий полезен, когда в API поле с телефоном необходимо передавать строгий формат (прим. +{{countryCode}}########## , выбрав такую маску в настройках, даже если в поле попадёт телефон в формате +7(968)111-22-33 то Albato автоматически его конвертирует в нужный формат для API

ObjectArray - Массив объектов, данный тип используется в паре со строковой секцией (которая создана в полях сущности). При выборе данного типа, в ключе указывается путь к самому массиву, в значении выбирается строковая секция.

Так же, у всех типов (кроме ObjectArray ) может быть дополнительный тип с +array на конце. Данный тип, означает что данные надо передавать в массиве элементов (прим. массив строк). То есть, если необходимо заполнить JSON в таком виде:

{

 "tags":[

  "tag",

  "tag2",

  "tag3"

 ]

}


То выбирается тип StringArray . Данный тип используется, если создаётся действие, в котором поле с таким же типом заполняется несколькими значениями через запятую, они автоматически будут собраны в массив строк.

Так же, при выборе такого дополнительного типа, появляется дополнительное поле в шестерёнке, в котором нужно указать символ разделитель, между элементами массива (по дефолту символ ,)

Дата и время



Если необходимо передать в запросе дату и время, то выбирается нужный тип переменной. При данном выборе, у поля в шестерёнке появляется три дополнительных поля:

Тип - Окончательный тип переменной, в каком виде её нужно передать. Может быть как int (в таком случае идёт автоматическая конвертация в unixtime), так и string.

Формат - Необходимо заполнить формат даты, согласно правилам PHP. Дата, что попадёт в это поле (может быть как dd.mm.yyyy hh:mm:ss так и Y-m-d H:i:s), автоматически конвертируется в тот формат, который прописан в этом поле. Формат заполняется согласно PHP документации. То есть, если формат указан Y/m/d+H:i:s, то полученная дата 21.03.2021 19:00:00, придёт к виду 2021/03/21+19:00:00 и именно в таком виде будет передана в HTTP запросе

Временная зона - Выбирается часовой пояс даты. Любая дата и время, что попадёт в такое поле, будет сконвертировано в выбранную временную зону


Массив объектов



Тип переменной ObjectArray рассмотрим отдельно, так как он является как отдельной под сущностью вкладки запроса.

При выборе данного типа, поле преобразуется в отдельный массив, данной действие не имеет обратного пути, возможно только удаление такого поля.

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

У созданных полей внутри массива, маппинг ключей нужно прописывать уже без указания пути к массиву. То есть, если JSON имеет такой вид:

{

 "items":[

  {

   "name":"Товар1",

   "quantity":1

  },

  {

   "name":"Товар2",

   "quantity":3

  }

 ]

}



То у созданного поля с типом ObjectArray ключ маппинга прописывается items , у массива создаётся два поля и ключ у них прописывается name и quantity с выбором нужных типов переменных. В значения таких полей, кладутся поля сущности именно строковой секции, которая выбрана в поле - родителе.

Обновлено на: 28/11/2022

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

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

Отменить

Спасибо!