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

إذا كنت تبحث عن أداة لاختبار واجهة برمجة تطبيقات SOAP التي أنشأتها باستخدام Node.js، فإن Apidog هي خيار رائع! كل ما تحتاجه هو النقر على الزر أدناه لبدء الاختبار! 👇 👇 👇
ستفترض هذه المقالة أنك قد قمت بتنزيل برنامج 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.
- تعريف واجهة برمجة التطبيقات الخاصة بك
يتضمن تعريف واجهة برمجة التطبيقات الخاصة بك تفاصيل مثل:
- الوظائف: تحديد العمليات أو الخدمات التي تهدف واجهة برمجة التطبيقات الخاصة بك إلى تقديمها.
- هيكل البيانات: يجب التحقق من تنسيق البيانات المتبادلة بين العميل وواجهة برمجة التطبيقات (عادة ما تكون في XML).
- ملف WSDL: تحتاج إلى إنشاء ملف WSDL (لغة توصيف خدمات الويب) الذي يوفر وصف واجهة برمجة التطبيقات الخاصة بك. - تثبيت مكتبة
soap:
في الطرفية الخاصة بك، استخدم npm لتثبيت مكتبةsoap. - تنفيذ المنطق من جانب الخادم:
استورد مكتبةsoapفي واجهة برمجة التطبيقات SOAP أو خدمة الويب الخاصة بك. خلال هذه الفترة، يجب عليك أيضًا إنشاء خادم SOAP من خلال تنفيذ طريقةsoap.createServerمع مسار ملف WSDL الخاص بك. وأخيرًا وليس آخرًا، قم بتعريف وظيفة للتعامل مع الطلبات الواردة، ومعالجتها، وإرجاع الاستجابات المناسبة إلى العميل. - بدء تشغيل الخادم:
نفذ طريقة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}`);
});
شرح الكود:
- استيراد مكتبة
soap: السطر 1 يستورد مكتبةsoapالتي تتيح التواصل عبر SOAP في Node.js. - تعريف نقطة نهاية الخدمة والمنفذ: المتغيرات الموجودة في السطر 4 تخزن عنوان URL والمنفذ حيث ستكون خدمة SOAP الخاصة بك متاحة. تذكر استبدال
http://localhost:8080/Greeterبعنوان URL الفعلي لنشر الخدمة. - إنشاء الخادم: الأسطر من 7 إلى 9 تنشئ خادم SOAP باستخدام طريقة
soap.createServer، مع تحديد المسار لملف WSDL الخاص بك (greeter.wsdl). تأكد من استبدال هذا المسار بموقع ملف WSDL الفعلي الخاص بك. - تعريف طريقة الخدمة: الأسطر من 12 إلى 21 تعرف دالة
Greetالتي تتوافق مع العملية في ملف WSDL الخاص بك. يتم استخراج معلمةnameمن الطلب الوارد، وتولد رسالة تحية باستخدام الاسم المستخرج، وتقوم لاحقًا بإرجاع كائن مع خاصيةgreetingالمضبوطة على الرسالة المولدة. - بدء تشغيل الخادم: الأسطر من 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); // المخرج: مرحبًا، جون دو!
});
});
شرح الكود:
- استيراد مكتبة
soap: مشابه للكود من جانب الخادم، السطر 1 يستورد مكتبةsoapللتواصل عبر SOAP. - تعريف نقطة نهاية الخدمة: هذا المتغير يخزن عنوان URL لخدمة SOAP الخاصة بك. استبدل
http://localhost:8080/Greeterبعنوان URL الفعلي حيث يتم نشر الخدمة. - إنشاء كائن عميل: طريقة
soap.createClientتنشئ كائن عميل SOAP يتفاعل مع نقطة نهاية الخدمة المحددة. - تعريف المعلمات: هذه القسم (السطر 14) يعرف المعلمات لعملية
Greet، بما في ذلك اسم المستخدم في هذه الحالة. - استدعاء العملية Greet: طريقة
client.Greetتستدعي العمليةGreetعلى الخادم، مع تمرير المعلمات المحددة. - معالجة الاستجابة: وظيفة الاستدعاء تتعامل مع استجابة الخادم، حيث إذا حدث خطأ، يتم تسجيل رسالة الخطأ، وإذا كانت ناجحة، تستخلص رسالة
greetingمن الاستجابة وتقوم بتسجيلها في وحدة التحكم.
أداة API كاملة لأي مطور API - Apidog
Apidog هي أداة تطوير واجهات برمجة تطبيقات شاملة. مع تصميم أولوي، تشجع مستخدميها على تصميم وبناء واختبار واجهات برمجة التطبيقات بصريًا بواجهة مستخدم بسيطة ولكن جميلة.

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

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

إذا تم استيراد ملف WSDL بنجاح، ستجد ملف WSDL الخاص بك على اليسار، كما هو موضح في الصورة المشار إليها بالسهم 1. يمكنك بعد ذلك النقر على الأسهم المرقمة للبدء في التعديل.
بمجرد استيراد ملف WSDL وتصحيحه، يمكنك البدء في اختباره على Apidog لمعرفة المزيد من الأخطاء. إذا كنت لا تزال غير متأكد مما إذا كان ملف WSDL الخاص بك صحيحًا أو خاطئًا، تحقق من أمثلة على ملفات WSDL لمزيد من التفاصيل.
خاتمة
يمكن بناء واجهات برمجة التطبيقات SOAP بمساعدة Node.js. بسبب كيفية أن Node.js تقنية قوية للمهام غير المتزامنة (يمكنك حتى دمج Node.js مع واجهات برمجة التطبيقات REST)، لا تزال واجهات برمجة التطبيقات SOAP ترى غرضًا في صناعة تطوير الويب.
عند التخطيط لإنشاء واجهات برمجة التطبيقات SOAP، يجب عليك التأكد من أن لديك هذه الملفات الثلاثة:
- ملف WSDL: إنه في الأساس الوثيقة والتفاصيل الخاصة بواجهة برمجة التطبيقات SOAP الخاصة بك.
- كود جانب الخادم: تحتاج إلى كود جانب الخادم لضمان معالجة الطلب.
- كود جانب العميل: بدون كود جانب العميل، لا يمكنك إرسال طلب إلى الخادم، وبالتالي لا يمكنك استرداد أو إرسال أي بيانات.
Apidog هو خيار ممتاز لأولئك الذين يرغبون في اختبار وتصحيح أو توثيق واجهات برمجة التطبيقات SOAP. مع المواصفات والتعديلات الموجهة لدورة حياة واجهة برمجة التطبيقات كاملة، يمكن أن يساعد Apidog المطورين في إنشاء واجهات برمجة التطبيقات البسيطة إلى المعقدة في غضون بضع دقائق!
![[دليل] تنفيذ واجهات برمجة التطبيقات SOAP باستخدام Node.js](https://assets.apidog.com/blog/2024/02/nodejs-soap-api-cover.png)