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
Спасибо!