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

Webhook. Что это такое и когда используется

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

Кроме самого события, сервер может передавать дополнительные данные: время события, логин пользователя, количество регистраций и другие параметры. Что именно передаёт сервер и в каком порядке — зависит от настроек сервера.

Чем Webhook отличается от API?

Большинство API работает по принципу «Спроси меня и я отвечу». То есть для получения свежих данных программному клиенту нужно постоянно отправлять запросы на сервер. Вебхуки работают иначе. Они как бы говорят: «Дружище, больше не нужно названивать. Если произойдет что-то для тебя важное, я сам сообщу».

Если простыми словами, вебхук — как бы подписка на обновления для определенных событий. Сервер будет оповещать клиента только о тех изменениях, которые ему по-настоящему важны. Он сам сообщит об этих событиях при настройке вебхука.

Когда использовать API, когда вебхуки?

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

Когда НЕ следует использовать вебхуки?

Когда нужна гарантированная доставка. У вебхуков такого нет. Это значит, что если по каким-то причинам мы не успели обработать запрос, то данные будут потеряны. Поэтому привязывать к вебхукам критичные события не стоит — лучше поискать другой механизм мониторинга.

Ещё бывает так, что проблемы могут быть на самом сервере. Например, если зависнет сервис, который рассылает вебхуки, то мы об этом не узнаем и не получим новых данных.

How Webhooks Work

Подборка материалов по теме

  1. Вебхук
  2. Вебхук — простой способ получить уведомление с сайта
  3. Что такое вебхук, как и зачем его использовать
  4. Реализация вебхуков на примере взаимодействия сторонних сервисов с онлайн-кассами
  5. Попробовать поэкспериментировать онлайн — webhook.site