объясни webhook --простыми-словами

Вебхук
"Не звоните нам, мы сами вам позвоним."
Обычный запрос к API — это ты задаешь вопрос. "Эй, Shopify, есть новые заказы?" Ты подходишь к окну, спрашиваешь, получаешь ответ. Проблема во времени. Если ты хочешь узнать в ту же секунду, когда что-то случилось, одного вопроса мало. Придется подходить к окну снова и спрашивать опять. И опять. Весь день. "Есть новые заказы? А сейчас? А сейчас?"
Это называется polling, и это ровно так же утомительно, как звучит. Ты ребенок на заднем сиденье, который каждые тридцать секунд спрашивает: "мы уже приехали?" Чаще всего ответ — нет, и вся эта энергия сожжена зря.
Вебхук разворачивает все наоборот.
Вместо того чтобы спрашивать снова и снова, ты один раз оставляешь номер и говоришь: "пинганите меня, как только придет новый заказ". Потом уходишь и занимаешься буквально чем угодно. Когда это случается, приложение само звонит тебе, автоматически, уже с деталями на руках. Без вопросов. Без дежурства у окна.
Представь, что заказал пиццу. Есть два способа узнать, что она готова:
- Звонить в пиццерию каждые пять минут. "Готово?" "А теперь?" (Это способ API. Ты делаешь работу снова и снова.)
- Они пишут тебе в ту секунду, когда пицца вышла из печи. (Это способ вебхука. Они сами выходят на связь.)
Один способ портит вечер. Другой дает спокойно смотреть телевизор, пока телефон не завибрирует.
Это двигатель почти всей автоматизации. Когда ты его увидишь, начнешь замечать, что он тихо работает за половиной инструментов, которыми ты пользуешься. Что-то происходит в одном месте, и вебхук срабатывает, чтобы что-то другое случилось в другом месте, без человека, который сидит и караулит:
- Новая продажа запускает вебхук, который добавляет клиента в email-список
- Новая отправка формы запускает вебхук, который пингует твой Slack-канал
- Неудачный платеж запускает вебхук, который пишет тебе, чтобы ты успел поймать клиента и спасти продажу
Последний пример для меня не гипотетический. В магазине, который я веду, неудачный платеж по подписке раньше означал, что мы узнавали об этом через несколько дней, когда клиент уже ушел и двинулся дальше. Поэтому я подключил вебхук: как только списание не проходит, он срабатывает и кидает прямо в наш Slack заметку с именем клиента и тем, что отклонилось. Никто не обновляет дашборд. Никто не проверяет отчет в понедельник. Сбой сам стучится в дверь, и у нас есть шанс спасти продажу, пока она еще теплая.
Вот простой способ держать эти две вещи в голове:
- API — это ты выходишь наружу. Ты спрашиваешь по своему расписанию, когда хочешь что-то узнать.
- Вебхук — это мир отвечает тебе. Он сообщает по своему расписанию, в момент, когда случилось что-то важное.
Хватит спрашивать. Начни получать уведомления.