Webhook הוא מנגנון אוטומציה שמאפשר לשירות אחד לשלוח נתונים אוטומטית לשירות אחר בזמן אמת. בניגוד ל-polling (בדיקה תקופתית), webhooks חוסכים משאבים ומאיצים תהליכים.
יתרונות: מהירות, חיסכון בשרת, אינטגרציה חלקה עם כלים כמו Make.com ו-n8n.
const express = require('express');
const app = express();
app.use(express.json());
app.post('/webhook', (req, res) => {
const data = req.body;
console.log('Received:', data);
// עיבוד הנתונים
processWebhookData(data);
res.status(200).json({ success: true });
});
function processWebhookData(data) {
// הלוגיקה שלך כאן
}
app.listen(3000, () => {
console.log('Webhook server running on port 3000');
});
הסבר: זהו webhook server בסיסי ב-Node.js שמקבל POST requests. הפונקציה `processWebhookData` מעבדת את הנתונים שהתקבלו. זה מושלם לאינטגרציה עם Make.com או n8n.
from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route('/webhook', methods=['POST'])
def webhook():
data = request.get_json()
print(f'Received: {data}')
# עיבוד הנתונים
process_webhook_data(data)
return jsonify({'success': True}), 200
def process_webhook_data(data):
# הלוגיקה שלך כאן
pass
if __name__ == '__main__':
app.run(port=3000)
הסבר: דוגמה זהה ב-Python עם Flask. הפונקציה `process_webhook_data` מעבדת את הנתונים. Flask הוא framework קל ומהיר לבניית webhook endpoints.
curl -X POST https://your-webhook-url.com/webhook \
-H "Content-Type: application/json" \
-d '{
"event": "user_signup",
"user_id": 12345,
"email": "user@example.com",
"timestamp": "2025-01-18T10:00:00Z"
}'
הסבר: זהו דוגמה לשליחת webhook עם cURL. שימושי לבדיקות או לאינטגרציה עם כלי command-line. ה-header `Content-Type: application/json` חשוב כדי שהשרת יזהה את הנתונים כ-JSON.
<?php
header('Content-Type: application/json');
$data = json_decode(file_get_contents('php://input'), true);
// עיבוד הנתונים
processWebhookData($data);
function processWebhookData($data) {
// הלוגיקה שלך כאן
error_log('Received: ' . print_r($data, true));
}
http_response_code(200);
echo json_encode(['success' => true]);
?>
הסבר: דוגמה ב-PHP שמקבלת webhook. הפונקציה `file_get_contents('php://input')` קוראת את ה-body של ה-request. זה מושלם אם אתה משתמש ב-PHP בשרת שלך.
// ב-n8n, הוסף Webhook node עם:
// Method: POST
// Path: /webhook/n8n
// Response Mode: Response Node
// בקוד שלך (Node.js):
app.post('/webhook/n8n', (req, res) => {
const { event, data } = req.body;
// שליחת תגובה ל-n8n
res.json({
status: 'success',
processed: true,
timestamp: new Date().toISOString()
});
});
הסבר: דוגמה לאינטגרציה עם n8n. ה-webhook node ב-n8n שולח POST request, והקוד שלך מחזיר תגובה JSON. זה מאפשר ל-n8n לדעת שהעיבוד הצליח.