"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > ما هي Webhooks وكيفية استخدامها بكفاءة

ما هي Webhooks وكيفية استخدامها بكفاءة

تم النشر بتاريخ 2024-11-07
تصفح:368

O Que São Webhooks e Como Utilizá-los Eficientemente

تعد خطافات الويب أداة قوية لدمج الأنظمة المختلفة وإرسال الإشعارات في الوقت الفعلي. فهي تسمح لأحد التطبيقات بإخطار تطبيق آخر تلقائيًا عند وقوع حدث ما، دون الحاجة إلى طلبات مستمرة للتحقق مما إذا كان هناك شيء جديد، كما يحدث في واجهة برمجة التطبيقات التقليدية. في هذه التدوينة، سنفهم كيفية عملها وكيفية تكوينها وسنستكشف مثالًا عمليًا باستخدام أداة Webhook.site، التي تسهل تطوير واختبار خطافات الويب.


ما هي خطافات الويب؟

بعبارات بسيطة، خطاف الويب هو آلية تسمح للخدمة بإرسال طلب HTTP إلى عنوان URL محدد عند وقوع حدث ما. بدلاً من الحاجة إلى الاستعلام عن الخادم بشكل متكرر للتحقق من التغييرات (كما يحدث عند استخدام واجهة برمجة التطبيقات)، يقوم خطاف الويب بإعلام تطبيقك بمجرد وقوع الحدث. وهذا يوفر الوقت والموارد، مما يجعل التفاعلات بين الأنظمة أكثر كفاءة.

من الأمثلة الكلاسيكية لاستخدام الخطافات عبر الويب في خدمات الدفع: عند اكتمال المعاملة، يرسل النظام خطافًا عبر الويب إلى تطبيقك لإعلامك بحالة الدفع. من هناك، يمكن لتطبيقك معالجة هذه المعلومات، مثل تحديث حالة الطلب، وإرسال إيصال عبر البريد الإلكتروني، من بين إجراءات أخرى.


كيف تعمل خطافات الويب؟

  1. تكوين Webhook : تقوم بتسجيل عنوان URL لتلقي الإشعارات. سيتم استدعاء عنوان URL هذا في كل مرة يحدث فيها حدث ذو صلة على الخدمة التي ترسل خطاف الويب.

  2. حدوث حدث: عند حدوث حدث تم تكوينه (مثل معاملة أو تحديث بيانات أو إنشاء سجل)، تقوم الخدمة بتشغيل طلب HTTP إلى عنوان URL المسجل.

  3. معالجة Webhook : يتلقى تطبيقك هذا الطلب ويعالج المعلومات. على سبيل المثال، يمكنك تحديث البيانات في قاعدة البيانات، أو إرسال رد للمستخدم، أو تنفيذ أي مهمة أخرى ضرورية.

  4. استجابة الطلب : بعد معالجة خطاف الويب، يجب أن يستجيب تطبيقك برمز حالة HTTP (مثل 200 موافق) لإعلامك بأنه تم استلام الطلب ومعالجته بشكل صحيح.


مثال عملي مع Webhook.site

قبل تكوين خطافات الويب في تطبيق حقيقي، من الممارسات الجيدة اختبارها محليًا أو في بيئة التطوير. أداة ممتازة لهذا هو Webhook.site. فهو يوفر عنوان URL مؤقتًا يمكنك من خلاله إرسال خطافات الويب لمعاينتها وتصحيح أخطائها، مما يسمح لك برؤية كيفية تلقي البيانات بالضبط.

دعونا نستخدم Webhook.site لاختبار استقبال خطاف الويب.

  1. الوصول إلى Webhook.site:

    • انتقل إلى Webhook.site.
    • يقوم الموقع تلقائيًا بإنشاء عنوان URL فريد لك (شيء مثل https://webhook.site/unique-url). سيكون هذا هو عنوان URL الذي سنستخدمه لتلقي الإشعارات.
  2. تكوين إرسال Webhook:

    • تخيل أن لديك نظامًا يقوم بتشغيل خطافات الويب. قم بتكوين هذا النظام لإرسال الطلبات إلى عنوان URL المقدم من Webhook.site.
    • إذا كنت تريد الاختبار محليًا، يمكنك محاكاة إرسال خطافات الويب باستخدام أدوات مثل cURL أو Postman، وإرسال الطلبات إلى عنوان URL الذي تم إنشاؤه.

الآن، لننفذ بعض تعليمات Node.js البرمجية التي تحاكي إرسال خطاف ويب إلى عنوان URL هذا.


مثال على تنفيذ Webhook في Node.js

فيما يلي مثال لكيفية تكوين نقطة نهاية لتلقي خطافات الويب وكيفية إرسال خطاف ويب باستخدام 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();
});

في هذا المثال:

  • لقد أنشأنا نقطة نهاية /webhook-receiver التي تحاكي تلقي خطاف ويب.
  • نستخدم Axios لمحاكاة إرسال خطاف ويب إلى Webhook.site، وتمرير حمولة تحتوي على بيانات من دفعة وهمية.
  • يتلقى موقع Webhook.site الإشعار ويعرض محتوى الطلب على اللوحة.

الممارسات الأمنية الجيدة في Webhooks

نظرًا لأن خطافات الويب تتضمن إرسال البيانات مباشرة إلى عنوان URL، فمن الضروري اتخاذ بعض الاحتياطات الأمنية:

  1. التحقق من صحة الأصل : تحقق مما إذا كان الطلب يأتي بالفعل من الخدمة المتوقعة. تقدم العديد من الخدمات توقيعًا مشفرًا (على سبيل المثال، استخدام HMAC) يمكنك استخدامه للتحقق من صحة الطلب.

  2. استخدام HTTPS: قم دائمًا بتكوين نقاط نهاية خطاف الويب الخاص بك لاستخدام HTTPS، مما يضمن تشفير الاتصالات بين الخدمة والتطبيق الخاص بك.

  3. المصادقة : بالإضافة إلى HTTPS، تتطلب بعض التطبيقات طلبات webhook لتضمين رمز مصادقة أو مفتاح كطبقة إضافية من الأمان.

  4. تحديد المعدل : قم بتطبيق حدود على عدد الطلبات التي يمكن لخادمك معالجتها في فترة معينة، مما يمنع تحميل التطبيق الخاص بك بعدد كبير جدًا من الطلبات في فترة زمنية قصيرة.


خطافات الويب مقابل. واجهات برمجة التطبيقات

غالبًا ما يخلط الأشخاص بين خطافات الويب وواجهات برمجة التطبيقات (APIs).

  • واجهات برمجة التطبيقات: فهي نشطة. يقدم تطبيقك طلبًا إلى الخادم ويتلقى البيانات ردًا على ذلك. أنت بحاجة إلى "البحث" عن المعلومات.
  • خطافات الويب: إنها سلبية. يرسل الخادم المعلومات تلقائيًا إلى تطبيقك عند وقوع حدث ما. "تتلقى" المعلومات دون الحاجة إلى السؤال.
تعتبر خطافات الويب مفيدة بشكل خاص في السيناريوهات التي تحتاج فيها إلى إشعارات في الوقت الفعلي، كما هو الحال في أنظمة الدفع وإشعارات الأحداث وعمليات التكامل بين الخدمات المختلفة.


خاتمة

تعد خطافات الويب طريقة بسيطة وفعالة للسماح للأنظمة المختلفة بالاتصال تلقائيًا في الوقت الفعلي. باستخدام أدوات مثل Webhook.site، يمكنك اختبار خطافات الويب الخاصة بك وتصحيح أخطائها قبل دمجها في الإنتاج. بالإضافة إلى ذلك، فإن اتباع ممارسات الأمان الجيدة يضمن حماية نقاط النهاية الخاصة بك من الوصول غير المرغوب فيه.

إذا كنت تقوم بتطوير تطبيق حديث وتحتاج إلى دمج خدمات مختلفة، فإن خطافات الويب هي حل ممتاز لأتمتة الاتصال بينها.


إذا كانت لديك أية أسئلة أو تجارب مثيرة للاهتمام مع خطافات الويب، شاركها في التعليقات!

بيان الافراج تم إعادة إنتاج هذه المقالة على: https://dev.to/lucaspereiradesouzat/o-que-sao-webhooks-e-como-utiliza-los-eficientemente-1iel?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3