раздел 02
Webhook: обратный вызов
Webhook работает наоборот по сравнению с API. Здесь не вы спрашиваете - сервис сам присылает вам уведомление, когда у него что-то произошло. Вам не нужно дёргать его и переспрашивать: случилось событие - вам сообщили.
Аналогия - доставка пиццы. С API вы каждые пять минут звоните в пиццерию: «уже выехал курьер? а сейчас? а сейчас?». С webhook вы дали свой номер и спокойно занимаетесь делами - курьер сам позвонит в дверь, когда приедет.
Push против pull
Это две противоположные модели передачи данных.
- -Инициатор - вы.
- -Вы дёргаете сервис, когда вам нужно.
- -Чтобы не пропустить событие, приходится спрашивать снова и снова.
- -Хорошо, когда данные нужны по запросу.
- -Инициатор - сервис.
- -Он сам стучится к вам, когда наступает событие.
- -Ничего переспрашивать не надо - узнаёте сразу.
- -Хорошо, когда важно реагировать на событие мгновенно.
Как это устроено
Пример с оплатой
Клиент оплатил заказ через платёжный сервис. Сервису нужно сообщить вашему магазину: «оплата по заказу 1024 прошла». Он дёргает заранее заданный URL вашего магазина и передаёт эти данные. Магазин получает webhook, помечает заказ оплаченным и отправляет покупателю чек.
Без webhook вашему магазину пришлось бы каждую минуту спрашивать платёжный сервис: «оплата уже прошла?» - и так по каждому заказу. С webhook сервис сам сообщает в нужный момент.