[دليل] تنفيذ واجهات برمجة التطبيقات SOAP باستخدام Node.js

Node.js هو برنامج جافا سكريبت مفتوح المصدر شائع يُستخدم غالبًا للعمل مع واجهات برمجة التطبيقات SOAP. بفضل قدرته على معالجة المهام غير المتزامنة وتشغيل كود جافا سكريبت خارج متصفح الويب، دعونا نستعرض كيفية تنفيذ واجهات برمجة التطبيقات SOAP باستخدام Node.js.

Amir Hassan

Amir Hassan

19 أغسطس 2025

[دليل] تنفيذ واجهات برمجة التطبيقات SOAP باستخدام Node.js

Apidog للمؤسسات

النشر على الخوادم المحلية

SSO و RBAC

متوافق مع SOC 2

استكشف Apidog للمؤسسات

Node.js هو بيئة تشغيل جافا سكريبت مجانية قابلة للتنزيل ومفتوحة المصدر، عبر الأنظمة الأساسية. يتيح للمطورين تشغيل شفرة جافا سكريبت خارج متصفح ويب. ما يميز Node.js هو أنه مجاني - كل ما عليك فعله هو زيارة موقعهم الإلكتروني لبدء التنزيل.

nodejs website
موقع Node.js
💡
Apidog هي منصة تطوير واجهات برمجة التطبيقات مجانية وقابلة للتنزيل ومتخصصة في بناء واختبار وتوثيق وتقليد واجهات برمجة التطبيقات. سواء كنت مطورًا مستقلًا أو جزءًا من فريق، يمكن أن تدعم Apidog متطلباتك.

إذا كنت تبحث عن أداة لاختبار واجهة برمجة تطبيقات SOAP التي أنشأتها باستخدام Node.js، فإن Apidog هي خيار رائع! كل ما تحتاجه هو النقر على الزر أدناه لبدء الاختبار! 👇 👇 👇
button

ستفترض هذه المقالة أنك قد قمت بتنزيل برنامج Node.js من موقعه على الويب، لذلك ستركز بشكل أكبر على توجيه كيفية إنشاء واجهة برمجة تطبيقات SOAP.

متى يجب عليك التفكير في بناء واجهات برمجة تطبيقات SOAP باستخدام Node.js؟

على الرغم من أن واجهات برمجة تطبيقات SOAP في انخفاض بطيء، إلا أنه لا تزال هناك العديد من الحالات التي قد تحتاج فيها إلى بناء واجهات برمجة تطبيقات SOAP باستخدام Node.js لضمان التوافق البيني.

التكامل مع الأنظمة القديمة: لا يزال SOAP مستخدمًا على نطاق واسع في الأنظمة القديمة، وNode.js، مع قدرته على التعامل مع المهام غير المتزامنة بكفاءة، يمكن أن يكون مناسبًا تمامًا لبناء واجهات برمجة التطبيقات التي تتكامل بسلاسة مع هذه الأنظمة.

متطلبات صناعة محددة: قد تعود الصناعات الصحية والمالية إلى SOAP بشكل كبير بسبب المعايير واللوائح المعمول بها. يمكن أن تساعد Node.js في إنشاء واجهات برمجة واضحة وفعالة لـ SOAP لهذه القطاعات.

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

نظرة عامة موجزة عن إنشاء واجهة برمجة تطبيقات SOAP باستخدام Node.js

قبل الدخول في التفاصيل، ستقدم هذه القسم نظرة ثاقبة لإنشاء واجهة برمجة تطبيقات SOAP باستخدام Node.js.

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

    يتضمن تعريف واجهة برمجة التطبيقات الخاصة بك تفاصيل مثل:

    - الوظائف: تحديد العمليات أو الخدمات التي تهدف واجهة برمجة التطبيقات الخاصة بك إلى تقديمها.

    - هيكل البيانات: يجب التحقق من تنسيق البيانات المتبادلة بين العميل وواجهة برمجة التطبيقات (عادة ما تكون في XML).

    - ملف WSDL: تحتاج إلى إنشاء ملف WSDL (لغة توصيف خدمات الويب) الذي يوفر وصف واجهة برمجة التطبيقات الخاصة بك.
  2. تثبيت مكتبة soap:

    في الطرفية الخاصة بك، استخدم npm لتثبيت مكتبة soap.
  3. تنفيذ المنطق من جانب الخادم:

    استورد مكتبة soap في واجهة برمجة التطبيقات SOAP أو خدمة الويب الخاصة بك. خلال هذه الفترة، يجب عليك أيضًا إنشاء خادم SOAP من خلال تنفيذ طريقة soap.createServer مع مسار ملف WSDL الخاص بك. وأخيرًا وليس آخرًا، قم بتعريف وظيفة للتعامل مع الطلبات الواردة، ومعالجتها، وإرجاع الاستجابات المناسبة إلى العميل.
  4. بدء تشغيل الخادم:

    نفذ طريقة server.listen لبدء خادم SOAP. سيمكن ذلك واجهة برمجة التطبيقات SOAP الخاصة بك من تلقي طلبات SOAP الواردة على المنفذ المحدد.

دليل تفصيلي خطوة بخطوة لإنشاء واجهة برمجة تطبيقات SOAP باستخدام Node.js

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

الخطوة 1: تثبيت مكتبة SOAP

افتح الطرفية الخاصة بك وتشغيل هذا الأمر.

npm install soap

بهذه الطريقة، يمكن الآن لواجهة برمجة التطبيقات SOAP الخاصة بك استيراد مكتبة soap، واستخدام جميع طرقها.

الخطوة 2: إعداد ملف WSDL

نظرًا لأنه يمكنك تصميم واجهة برمجة التطبيقات SOAP الخاصة بك استنادًا إلى ملف WSDL، ستحتاج إلى تنفيذ المنطق من خلال XML (لغة الترميز القابلة للتوسيع). سنسمي هذا الملف WSDL بـ greetUser.wsdl لتقديم توقعات لوظيفته.

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://tempuri.org/Greeter" 
  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
  xmlns:tns="http://tempuri.org/Greeter" 
  xmlns:xsd="http://www.w3.org/2001/XMLSchema">

  <xsd:types>
    <xsd:complexType name="GreetRequest">
      <xsd:sequence>
        <xsd:element name="name" type="xsd:string"/>
      </xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="GreetResponse">
      <xsd:sequence>
        <xsd:element name="greeting" type="xsd:string"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:types>

  <wsdl:message name="GreetRequestMessage">
    <wsdl:part name="parameters" element="tns:GreetRequest"/>
  </wsdl:message>

  <wsdl:message name="GreetResponseMessage">
    <wsdl:part name="result" element="tns:GreetResponse"/>
  </wsdl:message>

  <wsdl:portType name="GreeterPort">
    <wsdl:operation name="Greet">
      <wsdl:input message="tns:GreetRequestMessage"/>
      <wsdl:output message="tns:GreetResponseMessage"/>
    </wsdl:operation>
  </wsdl:portType>

  <wsdl:binding name="GreeterBinding" type="tns:GreeterPort">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc" xmlns:soap="http://schemas.xmlsoap.org/soap/"/>

    <wsdl:operation name="Greet">
      <soap:operation soapAction="http://tempuri.org/Greeter/Greet"/>
      <wsdl:input>
        <soap:body use="encoded" parts="tns:parameters"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="encoded" parts="tns:result"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>

  <wsdl:service name="GreeterService">
    <wsdl:port name="GreeterPort" binding="tns:GreeterBinding">
      <soap:address location="http://localhost:8080/Greeter"/>
    </wsdl:port>
  </wsdl:service>

</wsdl:definitions>

شرح الكود:

يعرف الكود خدمة GreeterService بعملية تسمى Greet. يأخذ اسم المستخدم كمدخلات ويعيد رسالة تحية إلى العميل. كما تم توفير عنوان SOAP، وهو http://localhost:8080/Greeter"

الخطوة 3: توليد كود واجهة برمجة تطبيقات SOAP من جانب الخادم

لكي يتمكن عملاؤك من التفاعل مع جانب الخادم، تحتاج إلى إعداد الجسر - الذي هو بشكل أساسي واجهة برمجة التطبيقات SOAP الخاصة بك! في هذا المثال، سنسمي هذا الملف server.js، حيث أن هذا هو الكود البرمجي لجافا سكريبت الخاص بالخادم.

const soap = require('soap');

// تعريف نقطة نهاية الخدمة والمنفذ
const url = 'http://localhost:8080/Greeter';

// إنشاء الخادم
const server = soap.createServer({
  wsdl: './greeter.wsdl', // استبدل بالمسار الفعلي لملف WSDL الخاص بك
});

// تعريف طريقة الخدمة
server.addFunction('Greet', (args) => {
  // استخراج الاسم من الطلب
  const name = args.name;

  // توليد رسالة التحية
  const greeting = `مرحبًا، ${name}!`;

  // إرجاع التحية كاستجابة
  return { greeting };
});

// بدء تشغيل الخادم
server.listen(process.env.PORT || 8080, () => {
  console.log(`يستمع خادم SOAP على المنفذ ${process.env.PORT || 8080}`);
});

شرح الكود:

  1. استيراد مكتبة soap: السطر 1 يستورد مكتبة soap التي تتيح التواصل عبر SOAP في Node.js.
  2. تعريف نقطة نهاية الخدمة والمنفذ: المتغيرات الموجودة في السطر 4 تخزن عنوان URL والمنفذ حيث ستكون خدمة SOAP الخاصة بك متاحة. تذكر استبدال http://localhost:8080/Greeter بعنوان URL الفعلي لنشر الخدمة.
  3. إنشاء الخادم: الأسطر من 7 إلى 9 تنشئ خادم SOAP باستخدام طريقة soap.createServer، مع تحديد المسار لملف WSDL الخاص بك (greeter.wsdl). تأكد من استبدال هذا المسار بموقع ملف WSDL الفعلي الخاص بك.
  4. تعريف طريقة الخدمة: الأسطر من 12 إلى 21 تعرف دالة Greet التي تتوافق مع العملية في ملف WSDL الخاص بك. يتم استخراج معلمة name من الطلب الوارد، وتولد رسالة تحية باستخدام الاسم المستخرج، وتقوم لاحقًا بإرجاع كائن مع خاصية greeting المضبوطة على الرسالة المولدة.
  5. بدء تشغيل الخادم: الأسطر من 24 إلى 26 تستخدم طريقة server.listen لبدء خادم SOAP على المنفذ المحدد. يمكنك تخصيص المنفذ عن طريق تعيين متغير البيئة PORT.

الخطوة 4: توليد كود جانب العميل

لكي يتمكن عملاؤك من الوصول إلى واجهة برمجة التطبيقات الخاصة بك، يحتاجون إلى تعليمات أو طلبات محددة. سنسمي هذا الملف client.js للدلالة على أنه كود جانب العميل.

const soap = require('soap');

// تعريف نقطة نهاية الخدمة
const url = 'http://localhost:8080/Greeter'; // استبدل بعنوان URL الفعلي للخدمة

// إنشاء كائن العميل
soap.createClient(url, (err, client) => {
  if (err) {
    console.error('خطأ في إنشاء عميل SOAP:', err);
    return;
  }

  // تعريف المعلمات لعملية Greet
  const args = { name: 'جون دو' }; // استبدل بالاسم المطلوب

  // استدعاء العملية Greet
  client.Greet(args, (err, response) => {
    if (err) {
      console.error('خطأ في استدعاء العملية Greet:', err);
      return;
    }

    // الوصول إلى رسالة التحية من الاستجابة
    const greeting = response.greeting;

    console.log(greeting); // المخرج: مرحبًا، جون دو!
  });
});

شرح الكود:

  1. استيراد مكتبة soap: مشابه للكود من جانب الخادم، السطر 1 يستورد مكتبة soap للتواصل عبر SOAP.
  2. تعريف نقطة نهاية الخدمة: هذا المتغير يخزن عنوان URL لخدمة SOAP الخاصة بك. استبدل http://localhost:8080/Greeter بعنوان URL الفعلي حيث يتم نشر الخدمة.
  3. إنشاء كائن عميل: طريقة soap.createClient تنشئ كائن عميل SOAP يتفاعل مع نقطة نهاية الخدمة المحددة.
  4. تعريف المعلمات: هذه القسم (السطر 14) يعرف المعلمات لعملية Greet، بما في ذلك اسم المستخدم في هذه الحالة.
  5. استدعاء العملية Greet: طريقة client.Greet تستدعي العملية Greet على الخادم، مع تمرير المعلمات المحددة.
  6. معالجة الاستجابة: وظيفة الاستدعاء تتعامل مع استجابة الخادم، حيث إذا حدث خطأ، يتم تسجيل رسالة الخطأ، وإذا كانت ناجحة، تستخلص رسالة greeting من الاستجابة وتقوم بتسجيلها في وحدة التحكم.

أداة API كاملة لأي مطور API - Apidog

Apidog هي أداة تطوير واجهات برمجة تطبيقات شاملة. مع تصميم أولوي، تشجع مستخدميها على تصميم وبناء واختبار واجهات برمجة التطبيقات بصريًا بواجهة مستخدم بسيطة ولكن جميلة.

apidog complete functionality api platform
Apidog، منصة تطوير واجهات برمجة التطبيقات الشاملة
button

إذا كنت تبحث عن أداة API لاختبار واجهة برمجة تطبيقات SOAP الخاصة بك، لا داعي للبحث أكثر - يدعم Apidog استيراد ملفات WSDL!

استيراد ملف WSDL إلى Apidog

import wsdl file apidog
استيراد ملف WSDL إلى Apidog

أولاً، انقر على زر Settings الموجود على الجانب الأيسر من الشريط العمودي. ثم، يجب أن تكون قادرًا على العثور على زر Import Data، والذي يمكن العثور عليه تحت قسم Data Management.

أخيرًا، حدد WSDL لتحديد أنك على وشك استيراد ملف WSDL إلى Apidog.

edit wsdl file apidog
تعديل ملف WSDL باستخدام Apidog

إذا تم استيراد ملف WSDL بنجاح، ستجد ملف WSDL الخاص بك على اليسار، كما هو موضح في الصورة المشار إليها بالسهم 1. يمكنك بعد ذلك النقر على الأسهم المرقمة للبدء في التعديل.

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

خاتمة

يمكن بناء واجهات برمجة التطبيقات SOAP بمساعدة Node.js. بسبب كيفية أن Node.js تقنية قوية للمهام غير المتزامنة (يمكنك حتى دمج Node.js مع واجهات برمجة التطبيقات REST)، لا تزال واجهات برمجة التطبيقات SOAP ترى غرضًا في صناعة تطوير الويب.

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

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

Apidog هو خيار ممتاز لأولئك الذين يرغبون في اختبار وتصحيح أو توثيق واجهات برمجة التطبيقات SOAP. مع المواصفات والتعديلات الموجهة لدورة حياة واجهة برمجة التطبيقات كاملة، يمكن أن يساعد Apidog المطورين في إنشاء واجهات برمجة التطبيقات البسيطة إلى المعقدة في غضون بضع دقائق!

ممارسة تصميم API في Apidog

اكتشف طريقة أسهل لبناء واستخدام واجهات برمجة التطبيقات