تعد خطافات الويب أداة قوية لدمج الأنظمة المختلفة وإرسال الإشعارات في الوقت الفعلي. فهي تسمح لأحد التطبيقات بإخطار تطبيق آخر تلقائيًا عند وقوع حدث ما، دون الحاجة إلى طلبات مستمرة للتحقق مما إذا كان هناك شيء جديد، كما يحدث في واجهة برمجة التطبيقات التقليدية. في هذه التدوينة، سنفهم كيفية عملها وكيفية تكوينها وسنستكشف مثالًا عمليًا باستخدام أداة Webhook.site، التي تسهل تطوير واختبار خطافات الويب.
بعبارات بسيطة، خطاف الويب هو آلية تسمح للخدمة بإرسال طلب HTTP إلى عنوان URL محدد عند وقوع حدث ما. بدلاً من الحاجة إلى الاستعلام عن الخادم بشكل متكرر للتحقق من التغييرات (كما يحدث عند استخدام واجهة برمجة التطبيقات)، يقوم خطاف الويب بإعلام تطبيقك بمجرد وقوع الحدث. وهذا يوفر الوقت والموارد، مما يجعل التفاعلات بين الأنظمة أكثر كفاءة.
من الأمثلة الكلاسيكية لاستخدام الخطافات عبر الويب في خدمات الدفع: عند اكتمال المعاملة، يرسل النظام خطافًا عبر الويب إلى تطبيقك لإعلامك بحالة الدفع. من هناك، يمكن لتطبيقك معالجة هذه المعلومات، مثل تحديث حالة الطلب، وإرسال إيصال عبر البريد الإلكتروني، من بين إجراءات أخرى.
تكوين Webhook : تقوم بتسجيل عنوان URL لتلقي الإشعارات. سيتم استدعاء عنوان URL هذا في كل مرة يحدث فيها حدث ذو صلة على الخدمة التي ترسل خطاف الويب.
حدوث حدث: عند حدوث حدث تم تكوينه (مثل معاملة أو تحديث بيانات أو إنشاء سجل)، تقوم الخدمة بتشغيل طلب HTTP إلى عنوان URL المسجل.
معالجة Webhook : يتلقى تطبيقك هذا الطلب ويعالج المعلومات. على سبيل المثال، يمكنك تحديث البيانات في قاعدة البيانات، أو إرسال رد للمستخدم، أو تنفيذ أي مهمة أخرى ضرورية.
استجابة الطلب : بعد معالجة خطاف الويب، يجب أن يستجيب تطبيقك برمز حالة HTTP (مثل 200 موافق) لإعلامك بأنه تم استلام الطلب ومعالجته بشكل صحيح.
قبل تكوين خطافات الويب في تطبيق حقيقي، من الممارسات الجيدة اختبارها محليًا أو في بيئة التطوير. أداة ممتازة لهذا هو Webhook.site. فهو يوفر عنوان URL مؤقتًا يمكنك من خلاله إرسال خطافات الويب لمعاينتها وتصحيح أخطائها، مما يسمح لك برؤية كيفية تلقي البيانات بالضبط.
دعونا نستخدم Webhook.site لاختبار استقبال خطاف الويب.
الوصول إلى Webhook.site:
تكوين إرسال Webhook:
الآن، لننفذ بعض تعليمات Node.js البرمجية التي تحاكي إرسال خطاف ويب إلى عنوان URL هذا.
فيما يلي مثال لكيفية تكوين نقطة نهاية لتلقي خطافات الويب وكيفية إرسال خطاف ويب باستخدام axios (أو أي مكتبة HTTP أخرى):
const express = require('express'); const axios = require('axios'); const app = express(); // Middleware para processar o body das requisições como JSON app.use(express.json()); // Endpoint que recebe os webhooks app.post('/webhook-receiver', (req, res) => { const event = req.body; // Processar o evento (aqui você adiciona a lógica que desejar) console.log('Webhook recebido:', event); // Retornar um status de sucesso para o serviço que enviou o webhook res.status(200).send('Evento processado com sucesso'); }); // Simulando o envio de um webhook para o Webhook.site const webhookURL = 'https://webhook.site/unique-url'; // Substitua pela sua URL do Webhook.site const sendWebhook = async () => { try { const payload = { event: 'payment_completed', data: { orderId: '12345', amount: 100.0, currency: 'USD' } }; const response = await axios.post(webhookURL, payload); console.log('Webhook enviado com sucesso:', response.status); } catch (error) { console.error('Erro ao enviar webhook:', error); } }; app.listen(3000, () => { console.log('Servidor rodando na porta 3000'); // Enviar o webhook após o servidor iniciar sendWebhook(); });
في هذا المثال:
نظرًا لأن خطافات الويب تتضمن إرسال البيانات مباشرة إلى عنوان URL، فمن الضروري اتخاذ بعض الاحتياطات الأمنية:
التحقق من صحة الأصل : تحقق مما إذا كان الطلب يأتي بالفعل من الخدمة المتوقعة. تقدم العديد من الخدمات توقيعًا مشفرًا (على سبيل المثال، استخدام HMAC) يمكنك استخدامه للتحقق من صحة الطلب.
استخدام HTTPS: قم دائمًا بتكوين نقاط نهاية خطاف الويب الخاص بك لاستخدام HTTPS، مما يضمن تشفير الاتصالات بين الخدمة والتطبيق الخاص بك.
المصادقة : بالإضافة إلى HTTPS، تتطلب بعض التطبيقات طلبات webhook لتضمين رمز مصادقة أو مفتاح كطبقة إضافية من الأمان.
تحديد المعدل : قم بتطبيق حدود على عدد الطلبات التي يمكن لخادمك معالجتها في فترة معينة، مما يمنع تحميل التطبيق الخاص بك بعدد كبير جدًا من الطلبات في فترة زمنية قصيرة.
غالبًا ما يخلط الأشخاص بين خطافات الويب وواجهات برمجة التطبيقات (APIs).
إذا كنت تقوم بتطوير تطبيق حديث وتحتاج إلى دمج خدمات مختلفة، فإن خطافات الويب هي حل ممتاز لأتمتة الاتصال بينها.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3