Что такое Webhook

«Что такое Webhook» — вопрос из категории API и интеграции, который задают на 27% собеседований Системный Аналитик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Webhook — это механизм обратного вызова (callback) через HTTP, позволяющий приложениям получать уведомления о событиях в реальном времени. В отличие от API, где клиент сам запрашивает данные, вебхук инициируется сервером при наступлении определенного события (например, платеж, сообщение и т.д.).

Пример:

from flask import Flask, request

app = Flask(__name__)

@app.route('/webhook', methods=['POST'])
def handle_webhook():
    data = request.json
    print(f"Received event: {data['event']}")
    return "OK", 200

if __name__ == '__main__':
    app.run(port=5000)

Ключевые особенности:

  • Сервер отправляет POST-запрос на указанный URL.
  • Нет необходимости в постоянном опросе (polling).
  • Требует настройки эндпоинта для приема данных.
  • Используется в платежных системах, CI/CD, чат-ботах и т.д.

Недостатки:

  • Нужен публичный URL (проблемы с локальным тестированием).
  • Требует обработки ошибок (например, если сервер получателя недоступен).