Перейти к основному содержимому

Отправить JSON запрос батчем

Batch-запросы позволяют объединить множество HTTP-запросов в один, указав в теле каждый запрос как отдельный объект. Сервер возвращает один HTTP-ответ, внутри которого находятся ответы на каждый переданный запрос.

Когда мы выбираем этот тип запроса, мы отправляем полученные события в формате JSON в теле POST запроса к внешнему API. При отправке будет сгенерирован JSON массив с событиями.

Настройка запроса

Стандартный запрос отправляется без авторизации. Однако если вы хотите передавать информацию во внешней сервис, который в качестве метода авторизации использует протокол OAuth 2.0, измените тип авторизации на OAuth2. В таком случае потребуется выбрать подключение, связывающее платформу Altcraft и сервис.

В настройках запроса необходимо указать:

  • URL сервиса, принимающего данные.
  • Максимальный размер батча — ограничение количества событий в JSON массиве. POST запрос будет отправлен, как только наберётся достаточно событий.
[{"event": "send", ... }, { }, ... ]
  • Таймаут секунд — период времени, в течение которого накапливать события в батче для отправки на сервер. Если за это время максимальный размер батча так и не будет достигнут, POST запрос всё равно будет отправлен. В таком случае JSON массив будет содержать количество событий, которое накопилось к моменту истечения таймаута.
  • Успех если найдена строка — ответ от сервера должен попасть в этот Regex, только тогда запрос на сервер будет признан успешным. Например:
.*OK.*
предупреждение

Если оставить поле "Успех если найдена строка" пустым, то любой ответ со статусом (status code) 200 будет считаться правильным.

Пример запроса для двух событий доставки
[
{
"event_type": "deliv",
"list_id": 50,
"account_id": 161,
"_xxh": "5ada5e6ea3c6da5f",
"_md5": "a5656dc1e3f603063a1918d582a10f58",
"event_data": {
"message_id": 5,
"segment_id": 0,
"campaign_id": 130
},
"event_date": "2016-11-15T09:12:28.514388956Z",
"custom_data": {
"email": "eddie@test-ukr.net",
"_fname": "Eddie"
},
"is_test": false
},
{
"event_type": "deliv",
"list_id": 50,
"account_id": 161,
"_xxh": "bb42e541c7267fa6",
"_md5": "593b250db256a764da8d2da4be694b31",
"event_data": {
"message_id": 5,
"segment_id": 0,
"campaign_id": 130
},
"event_date": "2016-11-15T09:12:28.569124547Z",
"custom_data": {
"email": "simon@test-gmail.com",
"_fname": "Simon"
},
"is_test": false
}
]