Блокировка (отмена) исходящего вебхука по признаку объекта

Рейтинг: 0.8902  
Новая
Предложил Пользователь 1848705 14.03.2018 16:28:13

Блокировка (отмена) исходящего вебхука по признаку объекта

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

Было бы здорово иметь на объекте признак (например, DISABLE_INCOME_WEBHHOK), который бы отменял отправку исходящих веб-хуков.


Рейтинг: 0  
Пользователь 136059 11.06.2018 18:49:09
Было бы здорово иметь на объекте признак (например, DISABLE_INCOME_WEBHHOK), который бы отменял отправку исходящих веб-хуков.

TL;DR: обрабатывать эту ситуацию нужно на стороне Вашего приложения, так как ньюансов работы очень много

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

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

К тому же, совершенно непонятно как решать проблему изменения через бизнес-процесс.
Например: есть бизнес-процесс который срабатывает на изменении контакта и изменяет какое-либо поле. Тогда Вы все равно попадете в зацикливание.

P.S. Но сама идея по отмене веб-хуков очень даже неплоха