هناك مجموعة متنوعة من لغات العميل التي يمكنك تعلمها لإنشاء تطبيقات ويب أو خوادم ليستخدمها أي شخص. لغة العميل الشهيرة التي يستخدمها الكثير من الناس هذه الأيام هي بايثون. سواء كنت مهندس برمجيات أو طالب جامعي خلال الفصل الدراسي، بايثون هي خيار لغة قوي لتضيفه إلى ترسانتك البرمجية.
بايثون - لغة برمجة شهيرة
إذا كانت هذه هي المرة الأولى التي ترى فيها بايثون، فهي لغة برمجة معروفة بقراءتها وسهولتها. إنها أكثر سهولة من العديد من لغات البرمجة الموجودة الأخرى. يمكن أن تكون لغة مناسبة جداً للتعلم إذا كنت مهتمًا بمعرفة المزيد عن تطوير الويب!
تشمل الاستخدامات الشائعة الأخرى لبايثون في تحليل البيانات، الذكاء الاصطناعي، والأتمتة، لذا إذا كنت تخطط للدخول إلى هذه المجالات من الدراسة، فهذه هي الوقت المثالي لبدء التعرف على بايثون!
خدمات الويب المعتمدة على SOAP
ما هو SOAP في "المعتمد على SOAP"؟
SOAP، اختصار بروتوكول وصول كائنات بسيط، هو بروتوكول لتبادل المعلومات المنظمة بين خدمات الويب والأنظمة والتطبيقات.
من خلال الالتزام ببروتوكول SOAP، فإنك تتبع مجموعة من القواعد لتنسيق الرسائل في XML (لغة الترميز القابلة للتوسيع)، مما يسمح للبرامج التي تعمل على أنظمة تشغيل وتقنيات مختلفة بالتواصل مع بعضها البعض.
المكونات الأساسية لرسالة SOAP النموذجية
Envelope
: العنصر الخارجي الذي ي encapsulate الرسالة SOAP بالكامل.
Header
: قسم اختياري يحتوي على معلومات إضافية لمعالجة الرسالة.
Body
: الجزء الرئيسي من الرسالة الذي يحتوي على البيانات الفعلية أو معلومات الطلب/الاستجابة.
Fault
: قسم اختياري للإبلاغ عن الأخطاء.
ملف WSDL الذي يأتي مع خدمة SOAP
توفر الوثائق أفضل صديق للمطورين عندما تجرب شيئًا جديدًا للمرة الأولى. بالنسبة لخدمات الويب SOAP أو واجهات برمجة التطبيقات SOAP، تأتي كتيبات التعليمات على شكل ملف WSDL.
WSDL تعني لغة وصف خدمات الويب، والتي تقدم أوصافًا لوظائف خدمة الويب، والطرق المدعومة، وأنواع البيانات المستخدمة، والبروتوكولات المتبعة.
لماذا يجب أن تفكر في استخدام بايثون للعمل مع خدمات ويب SOAP؟
يوفر استخدام بايثون للعمل مع خدمات الويب المعتمدة على SOAP العديد من المزايا للمطورين. إليك بعض الأسباب التي تجعلك تفكر في استخدام وتعلم بايثون:
- بسيط وسهل: بنية بايثون واضحة جدًا وسهلة القراءة. هذا يجعل كتابة وفهم وصيانة كود بايثون أسهل بكثير من لغات البرمجة الأخرى.
- مكتبة شاملة: مع بايثون، يمكن أن تعمل مجموعات مكتبية لا حصر لها ووحدات مع خدمات الويب - بعضها متخصص حتى في تبسيط استهلاك خدمات SOAP من خلال تقليل تعقيد كود بايثون المطلوب للتفاعل مع خدمات الويب المعتمدة على SOAP.
- تعدد الاستخدامات: تُستخدم بايثون في مجالات مختلفة، تتراوح بين تطوير الويب إلى علم البيانات وتعلم الآلة. مع فهم جيد لبايثون وخدمات الويب، يمكنك بسهولة دمج خدمات الويب المعتمدة على SOAP في التطبيقات في المجالات المذكورة أعلاه.
- دعم المجتمع: يساهم مطورو بايثون من جميع أنحاء العالم في المجتمع، منتجين موارد مثل الدروس والمخططات للمطورين الجدد للعمل مع لغة البرمجة بايثون، وهذا يشمل العمل مع خدمات الويب المعتمدة على SOAP أيضًا.
- دعم متعدد المنصات: يمكن تشغيل لغة برمجة بايثون على أنظمة تشغيل متنوعة، مثل 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

حدد الزر كما هو موضح في الصورة أعلاه.
الخطوة 2: تكوين الطلب الجديد

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

للوصول إلى القسم أعلاه، انقر على زر "العناوين" وأضف العنوانين التاليين إلى طلبك:
Content-Type
: اضبط هذا علىtext/xml
.SOAPAction
: اضبط هذا على إجراء SOAP أو الطريقة التي ترغب في استدعائها.
الخطوة 4 - تعيين جسم الطلب

- تحت قسم "الجسم"، حدد خيار
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 لبايثون أيضًا!