Перейти к основному содержимому
Altcraft Docs LogoAltcraft Docs Logo
Для пользователяДля разработчикаДля администратора
Веб-сайтБаза знаний
Русский
  • Русский
  • English
v74
  • v74
  • v73
  • v72
Войти
  • API пользователя
  • Взаимодействие с API
  • Матчинг
  • Профили
  • Базы данных
  • Ресурсы
  • Сегменты
  • Стоп-списки
  • Шаблоны
  • Рассылки
  • Кампании
  • Сценарии (цепочки)
  • Промокоды
  • Программы лояльности
  • Цели
  • Пуши приложений
  • Маркет
  • Отчеты и статистика
  • Сендеры
  • Объекты
  • Запросы к внешним базам данных
  • Прочее
    • Загрузить файл
    • Получить веб-версию сообщения
    • Push провайдеры
    • Дедупликация запросов
    • Работа с API через RabbitMQ
    • Список гендерных идентификаций
    • Получить допустимые значения полей browsers, devices, tz, oses, languages
  • Список API-методов
  • Импорт и настройка коллекции API-методов в Postman
  • SDK
  • Прочее
  • Дедупликация запросов
Документация для версии v74

Дедупликация запросов

Описание​

Повторный запрос — это запрос к API, который содержит тот же заголовок и те же данные, что и первичный запрос. Повторный запрос может отправляться в том случае, если в момент получения данных произошёл сбой соединения. Платформа не будет воспринимать повторный запрос, если он приводит к изменению данных, чтобы исключить дублирование событий. Эта схема работает по умолчанию и не требует дополнительной настройки. По умолчанию платформа осуществляет дедупликацию в течение 1 дня с момента первого запроса.

Платформа осуществляет дедупликацию по следующему алгоритму:

  • Проверка наличия заголовка Request-ID
  • Если Request-ID не указан, то проверяется контрольная сумма тела и заголовков запроса

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

к сведению

Различные клиенты отправки запросов могут добавлять в запрос свои собственные системные заголовки или другую информацию. Это может привести к несрабатыванию дедупликации запроса.

Как понять, что запрос был воспринят как дублирующий?​

Ответ на повторный запрос будет такой же, как и на первичный запрос. Однако повторный запрос будет содержать в себе дополнительные заголовки:

Duplicate-Key: NeOScRqBgsqj67CR5dYcqvcmPZA=
Duplicate-Request: true

Заголовок Duplicate-Key состоит из Request-ID запроса и токена отправителя. Если же Request-ID не передан, то заголовок будет хранить в себе хешированные данные запроса.

Как послать запрос, чтобы он не воспринимался как дублирующий?​

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

Сделать это можно одним из способов:

  • Измените данные в теле запроса или URL, например, &request_id=12345
  • Добавьте заголовок Request-ID с идентификатором запроса

API запросы, у которых работает дедупликация​

На повторы проверяются все запросы, которые выполняют модификацию данных или активацию/запуск сущностей:

КатегорияЗапрос
Профили (устаревшие API-методы)/v1.0/lists/:list_id/lead/unconfirm
/v1.0/lists/:list_id/lead/unsubscribe
/v1.0/lists/:list_id/lead/tags_add
/v1.0/lists/:list_id/lead/tags_remove
/v1.0/lists/:list_id/lead/subscribe
/v1.0/lists/:list_id/lead/complain
/v1.0/lists/:list_id/suspend_all
/v1.0/lists/:list_id/unsuspend_all
/v1.0/lists/:list_id/import
Интеграции/integrations/lpgenerator/profile_import
/integrations/tilda/profile_import
/integrations/any/profile_import
Стоп-список/v1.1/suppresses/add
/v1.1/suppresses/update
/v1.1/suppresses/domain_add
/v1.1/suppresses/domains_add
/v1.1/suppresses/domain_remove
/v1.1/suppresses/domains_remove
/v1.1/suppresses/email_add
/v1.1/suppresses/emails_add
/v1.1/suppresses/email_remove
/v1.1/suppresses/emails_remove
/v1.1/suppresses/phone_add
/v1.1/suppresses/phones_add
/v1.1/suppresses/phone_remove
/v1.1/suppresses/phones_remove
Подписки/v1.1/subscriptions/set
/v1.1/subscriptions/suspend_all
/v1.1/subscriptions/unsuspend_all
/v1.1/subscribers/import
/v1.1/subscribers/update
Сегменты/v1.1/segments/add
/v1.1/segments/update
/v1.1/segments/refresh_counters
Рассылки/v1.1/campaigns/deactivate
/v1.1/campaigns/activate
/v1.1/campaigns/clone
Триггерные рассылки/v1.1/campaigns/triggers/add
/v1.1/campaigns/triggers/update
/v1.1/campaigns/triggers/start
/v1.1/campaigns/triggers/import_and_start
/v1.1/campaigns/triggers/clone
/v1.1/triggers/start_batch (только с Request-ID)
/v1.1/triggers/start_batch_task (только с Request-ID)
/v1.1/triggers/import_and_start_batch (только с Request-ID)
/v1.1/triggers/import_and_start_batch_task (только с Request-ID)
Броадкасты/v1.1/campaigns/broadcasts/add
/v1.1/campaigns/broadcasts/update
/v1.1/campaigns/broadcasts/start
Регулярные рассылки/v1.1/campaigns/regulars/add
/v1.1/campaigns/regulars/update
/v1.1/campaigns/regulars/start
Сендеры/v1.1/admin/senders/queue/hold
/v1.1/admin/senders/queue/unhold
/v1.1/admin/senders/queue/purge
/v1.1/admin/senders/update
/v1.1/admin/senders/add_to_account
/v1.1/admin/senders/add
/v1.1/admin/vsenders/add
/v1.1/admin/vsenders/update
/v1.1/admin/vsenders/clone
Ноды/v1.1/admin/nodes/mta/start
/v1.1/admin/nodes/mta/stop
Статический сегмент/v1.1/profiles/segstatic/add
/v1.1/profiles/segstatic/remove
Профили/v1.1/profiles/add
/v1.1/profiles/update
/v1.1/profiles/import
/v1.1/profiles/add_batch
/v1.1/profiles/update_batch
/v1.1/profiles/import_batch
Промокоды/v1.1/promocodes/attach
/v1.1/promocodes/activate
/v1.1/promocodes/import
/v1.1/promocodes/detach
/v1.1/promocodes/update
Связи/v1.1/relations/attach
/v1.1/relations/detach
/v1.1/relations/edit
/v1.1/relations/strengthen
Базы данных/v1.1/databases/wipe
/v1.1/databases/refresh_counters
Вирутальные сендеры/v1.1/vsenders/add
/v1.1/vsenders/update
/v1.1/vsenders/clone
Сценарии/v1.1/workflows/start
/v1.1/workflows/import_and_start
/v1.1/workflows/import_and_start_batch (только с Request-ID)
/v1.1/workflows/import_and_start_batch_task (только с Request-ID)
Регистрация событий пушей/v1.1/pushes/post_events
/v1.1/pushes/crypto_post_events
Шаблоны/v1.1/templates/add
/v1.1/templates/update
/v1.1/templates/delete
Ресурсы/v1.1/resources/push_subscribe
/v1.1/resources/refresh_counters
Таблицы данных/v1.1/datatables/query_templates/update
/v1.1/datatables/query_templates/delete
/v1.1/datatables/query_templates/add
/v1.1/datatables/query_segments/update
/v1.1/datatables/query_segments/delete
/v1.1/datatables/query_segments/add
Последнее обновление 20 сент. 2024 г.
Предыдущая страница
Push провайдеры
Следующая страница
Работа с API через RabbitMQ
  • Описание
  • Как понять, что запрос был воспринят как дублирующий?
  • Как послать запрос, чтобы он не воспринимался как дублирующий?
  • API запросы, у которых работает дедупликация
© 2015 - 2025 Altcraft. Все права защищены.