Apidog

منصة تطوير API تعاونية متكاملة

تصميم API

توثيق API

تصحيح أخطاء API

محاكاة API

اختبار API الآلي

دورة بايثون: العمل مع خدمات الويب المعتمدة على SOAP

بايثون هي لغة برمجة شائعة تُستخدم مع خدمات الويب المعتمدة على SOAP.

Amir Hassan

Amir Hassan

Updated on نوفمبر 29, 2024

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

بايثون - لغة برمجة شهيرة

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

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

خدمات الويب المعتمدة على SOAP

ما هو SOAP في "المعتمد على SOAP"؟

SOAP، اختصار بروتوكول وصول كائنات بسيط، هو بروتوكول لتبادل المعلومات المنظمة بين خدمات الويب والأنظمة والتطبيقات.

من خلال الالتزام ببروتوكول SOAP، فإنك تتبع مجموعة من القواعد لتنسيق الرسائل في XML (لغة الترميز القابلة للتوسيع)، مما يسمح للبرامج التي تعمل على أنظمة تشغيل وتقنيات مختلفة بالتواصل مع بعضها البعض.

المكونات الأساسية لرسالة SOAP النموذجية

Envelope: العنصر الخارجي الذي ي encapsulate الرسالة SOAP بالكامل.

Header: قسم اختياري يحتوي على معلومات إضافية لمعالجة الرسالة.

Body: الجزء الرئيسي من الرسالة الذي يحتوي على البيانات الفعلية أو معلومات الطلب/الاستجابة.

Fault: قسم اختياري للإبلاغ عن الأخطاء.

ملف WSDL الذي يأتي مع خدمة SOAP

توفر الوثائق أفضل صديق للمطورين عندما تجرب شيئًا جديدًا للمرة الأولى. بالنسبة لخدمات الويب SOAP أو واجهات برمجة التطبيقات SOAP، تأتي كتيبات التعليمات على شكل ملف WSDL.

WSDL تعني لغة وصف خدمات الويب، والتي تقدم أوصافًا لوظائف خدمة الويب، والطرق المدعومة، وأنواع البيانات المستخدمة، والبروتوكولات المتبعة.

لماذا يجب أن تفكر في استخدام بايثون للعمل مع خدمات ويب SOAP؟

يوفر استخدام بايثون للعمل مع خدمات الويب المعتمدة على SOAP العديد من المزايا للمطورين. إليك بعض الأسباب التي تجعلك تفكر في استخدام وتعلم بايثون:

  1. بسيط وسهل: بنية بايثون واضحة جدًا وسهلة القراءة. هذا يجعل كتابة وفهم وصيانة كود بايثون أسهل بكثير من لغات البرمجة الأخرى.
  2. مكتبة شاملة: مع بايثون، يمكن أن تعمل مجموعات مكتبية لا حصر لها ووحدات مع خدمات الويب - بعضها متخصص حتى في تبسيط استهلاك خدمات SOAP من خلال تقليل تعقيد كود بايثون المطلوب للتفاعل مع خدمات الويب المعتمدة على SOAP.
  3. تعدد الاستخدامات: تُستخدم بايثون في مجالات مختلفة، تتراوح بين تطوير الويب إلى علم البيانات وتعلم الآلة. مع فهم جيد لبايثون وخدمات الويب، يمكنك بسهولة دمج خدمات الويب المعتمدة على SOAP في التطبيقات في المجالات المذكورة أعلاه.
  4. دعم المجتمع: يساهم مطورو بايثون من جميع أنحاء العالم في المجتمع، منتجين موارد مثل الدروس والمخططات للمطورين الجدد للعمل مع لغة البرمجة بايثون، وهذا يشمل العمل مع خدمات الويب المعتمدة على SOAP أيضًا.
  5. دعم متعدد المنصات: يمكن تشغيل لغة برمجة بايثون على أنظمة تشغيل متنوعة، مثل Windows وmacOS وLinux وغيرها. مما يسمح بتكون تطبيقات بايثون أكثر سهولة في الصيانة عبر بيئات العمل المختلفة.

أمثلة على تفاعل بايثون وخدمات الويب المعتمدة على SOAP باستخدام مكتبة "Suds-Jurko"

تتطلب بايثون مكتبة "suds-jurko" للتفاعل مع خدمات الويب المعتمدة على SOAP، لذا قبل أن تفعل أي شيء، تأكد من تشغيل السطر التالي على Bash:

pip install suds-jurko

تفاعل بسيط مع خدمة SOAP

from suds.client import Client

# الخطوة 1: إنشاء عميل SOAP
url = 'https://www.example.com/soap-service?wsdl'
client = Client(url)

# الخطوة 2: استكشاف الخدمة
print(client)

# الخطوة 3: استدعاء طريقة SOAP
result = client.service.say_hello('جون')

# الخطوة 4: التعامل مع الاستجابة
print(result)

يستخدم هذا المثال خدمة SOAP تحتوي على طريقة تسمى say_hello، التي تأخذ معلمة وتعيد تحية. هذا الرمز عملي عن طريق استبدال عنوان URL https://www.example.com/soap-service?wsdl بعنوان URL الفعلي لملف WSDL الخاص بخدمة SOAP الخاصة بك لبدء العمل معها في بايثون!

استخدام بايثون للتعامل مع أنواع البيانات المعقدة

from suds.client import Client

# الخطوة 1: إنشاء عميل SOAP
url = 'https://www.example.com/complex-service?wsdl'
client = Client(url)

# الخطوة 2: استكشاف الخدمة
print(client)

# الخطوة 3: استدعاء طريقة SOAP مع نوع معقد
person_data = {'name': 'أليس', 'age': 30, 'city': 'أرض العجائب'}
result = client.service.process_person_data(person_data)

# الخطوة 4: التعامل مع الاستجابة
print(result)

نموذج كود بايثون أعلاه يوضح خدمة SOAP بها طريقة تسمى process_person_data التي تأخذ نوعًا معقدًا كمعلمة.

إنشاء خدمات الويب المعتمدة على SOAP باستخدام بايثون

يمكنك إنشاء خدمة الويب المعتمدة على SOAP خاصتك (أو واجهة برمجة التطبيقات SOAP) بلغة بايثون. ابدأ بتثبيت مكتبة spyne على Bash

pip install spyne

بعد ذلك، يجب عليك إنشاء ملف بايثون جديد. كما في مثال هذه المقالة، سيكون اسم الملف soap_service.py. لاحظ أن واجهة برمجة التطبيقات SOAP سيتم تعريفها بواسطة spyne.

from spyne import Application, rpc, ServiceBase, Iterable, Integer, Unicode

class HelloWorldService(ServiceBase):
    @rpc(Unicode, Integer, _returns=Iterable(Unicode))
    def say_hello(ctx, name, times):
        for i in range(times):
            yield f"مرحبًا، {name}!"

# إنشاء التطبيق مع الخدمة المحددة
application = Application([HelloWorldService], tns='my_namespace', in_protocol=None, out_protocol=None)

لضمان أن واجهة برمجة التطبيقات الخاصة بك يمكن تشغيلها، أضف الكود التالي إلى الأسفل في الملف الذي قمت بإنشائه في الخطوة السابقة.

from wsgiref.simple_server import make_server

if __name__ == '__main__':
    server = make_server('0.0.0.0', 8000, application)
    server.serve_forever()

أخيرًا، تحقق مما إذا كان يعمل عن طريق تشغيل نص بايثون على Bash.

python soap_service.py

يجب أن تعمل واجهة برمجة التطبيقات SOAP هذه على خادم HTTP بسيط بعنوان URL http://0.0.0.0:8000.

اختبار واجهة برمجة التطبيقات SOAP بايثون باستخدام Apidog

هل تتساءل ما إذا كانت واجهة برمجة التطبيقات SOAP التي أنشأتها باستخدام بايثون تعمل؟ جرب استخدام Apidog - منصة API قوية تتيح لك ليس فقط اختبار ولكن أيضًا تصحيح وإنشاء واجهات برمجة التطبيقات.

في هذه المقالة، سيتم تقديم عرض حول كيفية اختبار واجهات برمجة التطبيقات SOAP بايثون (ملحوظة: هذا الطلب يختلف عن طلبات بايثون!).

المتطلبات المسبقة للاختبار

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

  • واجهة برمجة التطبيقات SOAP بايثون تعمل بالفعل
  • قم بتثبيت Apidog عن طريق النقر على الزر أدناه!
زر

عليك أيضًا اختيار الحساب الذي تفضل تسجيل الدخول إليه Apidog.

خطوات اختبار واجهة برمجة التطبيقات SOAP بايثون على Apidog

الخطوة 1: إنشاء طلب جديد في Apidog

إنشاء طلب جديد على Apidog
إنشاء طلب جديد على Apidog

حدد الزر كما هو موضح في الصورة أعلاه.

الخطوة 2: تكوين الطلب الجديد

تغيير نوع الطلب URL Apidog
تكوين الطلب الجديد

السهم 1 - تأكد من تعيين نوع الطلب إلى POST حيث تُرسل عادةً طلبات SOAP عبر طريقة HTTP POST. هنا، يجب أيضًا تعيين عنوان URL للطلب إلى نقطة النهاية الخاصة بواجهة برمجة التطبيقات SOAP بايثون التي تعمل. على سبيل المثال، يمكن أن يكون عنوان URL لهذا الطلب http://localhost:8000/.

السهم 2 - أضف أي معلمات إضافية لتتوافق مع واجهة برمجة التطبيقات SOAP الخاصة بك.

الخطوة 3 - تضمين العناوين

تعيين العناوين لاختبار واجهة برمجة التطبيقات SOAP Apidog
تعيين عناوين لطلب واجهة برمجة التطبيقات الخاصة بك

للوصول إلى القسم أعلاه، انقر على زر "العناوين" وأضف العنوانين التاليين إلى طلبك:

  • Content-Type: اضبط هذا على text/xml.
  • SOAPAction: اضبط هذا على إجراء SOAP أو الطريقة التي ترغب في استدعائها.

الخطوة 4 - تعيين جسم الطلب

تعيين جسم الطلب بتنسيق XML Apidog
تعيين جسم الطلب لاختبار واجهة برمجة تطبيقات SOAP
  • تحت قسم "الجسم"، حدد خيار raw.
  • قم بإنشاء طلب SOAP باستخدام تنسيق XML الذي يتوافق مع طريقة الخدمة التي ترغب في استدعائها في المساحة الفارغة المميزة بالسهم.

يمكن إضافة مثال طلب SOAP لطريقة تسمى say_hello، مثل هذا:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="my_namespace">
    <soapenv:Header/>
    <soapenv:Body>
        <web:say_hello>
            <name>جون</name>
            <times>3</times>
        </web:say_hello>
    </soapenv:Body>
</soapenv:Envelope>

تأكد فقط من أنه إذا تم استخدام نموذج الكود أعلاه، فإنه يجب استبدال الفضاء (code>my_namespace) ومعلمات الطريقة بتفاصيل الخدمة الفعلية الخاصة بك.

الخطوة 5 - إرسال الطلب والتحقق من الاستجابة

بمجرد أن يكون كل شيء جاهزًا، اضغط على زر "إرسال" الموجود في الزاوية العلوية اليمنى من الشاشة!

إذا كانت ناجحة، يجب أن تكون قادرًا على عرض الاستجابة المستلمة. تحقق مرة أخرى مما إذا كانت الاستجابة هي ما كنت تتوقعه.

الخاتمة

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

كيفية الوصول إلى واجهة برمجة تطبيقات كلود 3.7 سونيت واختبارها باستخدام أبادوغالدروس التعليمية

كيفية الوصول إلى واجهة برمجة تطبيقات كلود 3.7 سونيت واختبارها باستخدام أبادوغ

إذا كنت متحمسًا لإصدار Anthropic الأخير، Claude 3.7 Sonnet، وترغب في استكشاف قدراته من خلال واجهة برمجة التطبيقات (API) أثناء اختباره باستخدام Apidog، فأنت في المكان الصحيح. 💡قبل أن نبدأ، دعني أعطيك لمحة سريعة: قم بتنزيل Apidog مجانًا اليوم لتسهيل عملية اختبار واجهة برمجة التطبيقات الخاصة بك، خاصة لاستكشاف ميزات Claude 3.7 Sonnet القوية - مثالي للمطورين الذين يرغبون في اختبار نماذج الذكاء الاصطناعي المتطورة مثل هذا!زر لنبدأ بشرح لماذا يعد Claude 3.7 Sonnet مهمًا. كشفت Anthropic مؤخرًا عن هذا

@apidog

فبراير 25, 2025

كيفية بناء واختبار واجهة برمجة تطبيقات Spring Boot باستخدام Apidogالدروس التعليمية

كيفية بناء واختبار واجهة برمجة تطبيقات Spring Boot باستخدام Apidog

تعلم كيفية إنشاء واجهة برمجة تطبيقات RESTful بسيطة باستخدام Spring Boot واختبارها بأداة تسمى APIdog. Spring Boot هو إطار عمل يسهل تطوير الويب باستخدام Java. Apidog هي أداة تساعدك في اختبار وتصحيح واجهات برمجة التطبيقات الخاصة بك.

Amir Hassan

فبراير 29, 2024

[دليل] تحويل واجهات برمجة التطبيقات SOAP إلى واجهات برمجة التطبيقات RESTالدروس التعليمية

[دليل] تحويل واجهات برمجة التطبيقات SOAP إلى واجهات برمجة التطبيقات REST

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

Amir Hassan

فبراير 29, 2024