Ответ
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 (проблемы с локальным тестированием).
- Требует обработки ошибок (например, если сервер получателя недоступен).