Вебхуки — события об изменении данных

webhooks

«Вебхуки» это термин из сферы интеграции. Существует 2 способа узнать об изменении данных в некой системе: спросить у неё о них или получать от неё события.

Первый способ — спрашивать об изменениях. Метод трудозатратный и долгий. Во-первых, опрашивать нужно периодически, а значит будут задержки. Во-вторых, это создает избыточную нагрузку в обеих систмах. Для опроса изменений в Бипиуме создано API.

Второй способ — обрабатывать события. События передают изменения моментально и содержат только полезную информацию. Тем самым уменьшается нагрузка и время синхронизации. Для поддержки событий в Бипиуме мы внедрили вебхуки.

Вебхук — это подписка на некоторое событие в системе. Например, на создание новой записи в каталоге Клиенты. Когда сотрудник создает нового клиента, Бипиум отправляет подписавшейся системе информацию о нём. Сообщение отправляется HTTP-запросом.

 

Вебхуки в Бипиуме

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

Жизненный цикл. Вебхуки срабатывают после выполнения операции (уведомления) и до выполнения с ожиданием подтверждения (вебхук-запросы). Об этом ниже.

Полезные данные. Сообщение вебхука содержит не все поля записи, а лишь измененные значения. Это позволяет стороннему серверу понять, какие правки внёс сотрудник.

Очередность. Каждое сообщение вебхука содержит порядковый номер. Это дает стороннему серверу возможность понять не пропустил ли он какие-то события. Бипиуем не повторяет сообщения, если сторонний сервер был не доступен.

Безопасность. Бипиум подписывает сообщения вебхуков секретным ключом. Это позволяет стороннему серверу убедиться в подлинности отправителя.

API. Вебхуки хранятся так же, как и другие данные в Бипиуме — в каталоге. Это значит, что можно использовать стандартные методы API для добавления или получения списка вебхуков. Вы даже можете повесить вебхук на создание вебхука. Главное не зациклиться :)

 

Вебхук-уведомления и вебхук-запросы

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

В Бипиуме мы пошли дальше. Помимо уведомлений Бипиум умеет информировать о намерениях изменить данные. Такие события мы назвали вебхук-запросами. Вебхук-запросы срабатывают до того, как данные сохранены в базу данных и дожидаются ответа от стороннего сервера для подтверждения или отклонения операции.

webhook_requests

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

 

Способ настройки вебхуков, формат сообщений и ответов описан в документации.

Поделиться
Плюсануть

2 комментария

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>