ما هي مكتبات عميل SOAP الموجودة لـ Python ، وأين هي الوثائق الخاصة بها؟




soap-client (10)

SUDS سهل الاستخدام ، ولكن ليس مضمونًا إعادة الدخول. إذا كنت تحتفظ بجهاز WSDL Client () في تطبيق مرتبط للحصول على أداء أفضل ، فهناك بعض المخاطر التي ينطوي عليها هذا الأمر. الحل لهذه المخاطر ، طريقة الاستنساخ () ، يلقي علة بايثون 5508 غير القابلة للاسترداد ، والتي يبدو أنها تطبع ولكنها لا تلقي استثناءً. يمكن أن يكون مربكا ، لكنه يعمل. انها لا تزال حتى الآن أفضل عميل بيثون SOAP.

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

تعديل: فقط في حالة ما إذا كان ذلك مفيدًا ، فأنا أستخدم Python 2.6.


SUDS هو الطريق للذهاب ، لا شك في ذلك.


أصدرنا مكتبة جديدة: pysimplesoap ، التي توفر الدعم للعميل / الخادم البسيط والوظيفي. الأهداف هي: سهولة الاستخدام والمرونة (لا حاجة إلى دروس ، أو كود autopenerated أو xml) ، استبطان WSDL وتوليده ، التوافق القياسي WS-I ، التوافق (بما في ذلك Java AXIS ، .NET و Jboss WS). يتم تضمينه في Web2Py لتمكين حلول المكدس الكامل (تكمل البروتوكولات الأخرى المعتمدة مثل XML_RPC ، JSON ، AMF-RPC ، إلخ).

إذا كان شخص ما يتعلم SOAP أو يريد التحقيق فيه ، أعتقد أنه خيار جيد للبدء.


أعتقد أن soaplib قد أوقفت عميل SOAP ("المرسل") لصالح suds. في هذه المرحلة ، تركز soaplib على كونها خادم SOAP ملزمة إطار العمل ('المتلقي'). حاليًا ، يكون برنامج soaplib قيد التطوير النشط ، وعادةً ما تتم مناقشته في قائمة بريد Python SOAP:

http://mail.python.org/mailman/listinfo/soap


ايم باستخدام SOAPpy مع Python 2.5.3 في إعداد الإنتاج.

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


تابعت نصيحة أجوبة أخرى على هذا السؤال وأعطت SUDS المحاولة. بعد استخدامه "في الغضب" يجب أن أوافق: SUDS هو لطيف جدا! ينصح به بشده!

واجهت مشاكل في استدعاء خدمات الويب المستندة إلى HTTPS من وراء الخادم الوكيل. في وقت كتابة هذه السطور ، يؤثر هذا على جميع عملاء خدمة ويب Python الذين يستخدمون urllib2 ، لذا سأقوم بتوثيق الحل هنا.

urllib2 وحدة urllib2 شحنها مع python 2.6.2 أو أدناه CONNECT إلى الوكيل لجلسات HTTPS-over-HTTP-proxy. ينتج عن هذا مهلة طويلة ، أو إذا كنت محظوظًا ، يبدو خطأ كالتالي:

abort: error: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol

كانت هذه المسألة issue1424152 على تعقب بيثون علة. هناك بقع مرفقة بتقرير الخطأ الذي سيتم إصلاح هذا في Python 2.x و Python 3.x. تم بالفعل إصلاح المشكلة .


كان لدي خبرة جيدة مع SUDS SUDS

استخدم TestSuite كوثائق.


كما اقترحت here أوصيك بأن تتفرد بنفسك. إنه في الواقع ليس بهذه الصعوبة وأظن أن هذا هو السبب في عدم وجود مكتبات بيثون SOAP أفضل هناك.


يمكن أن يساعد هذا: http://users.skynet.be/pascalbotte/rcx-ws-doc/python.htm#SOAPPY

لقد وجدت ذلك من خلال البحث عن wsdl و python ، مع الوجود العقلاني ، أنك ستحتاج إلى وصف wsdl لخادم SOAP للقيام بأية أغلفة مفيدة للعميل ....


تحديث (2016):

إذا كنت بحاجة إلى عميل SOAP فقط ، فهناك مكتبة يتم صيانتها بشكل جيد تسمى zeep . وهو يدعم كلا من بايثون 2 و 3 :)

تحديث:

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

للأسف ، في هذه اللحظة ، لا أعتقد أن هناك مكتبة "بيثون" SOAP "أفضل". كل واحدة من تلك السائدة المتاحة لديها إيجابياتها وسلبياتها الخاصة.

المكتبات القديمة:

  • SOAPy : كان "الأفضل" ، ولكن لم يعد يتم الحفاظ عليه. لا يعمل على Python 2.5+

  • ZSI : مؤلم جدا للاستخدام ، والتطور بطيء. لديه وحدة تسمى "SOAPpy" ، والتي تختلف عن SOAPy (أعلاه).

المكتبات "الأحدث":

  • SUDS : Pythonic جدا ، وسهلة لإنشاء عملاء SOAP يستهلك WSDL. إنشاء خوادم SOAP هو أكثر صعوبة بعض الشيء. (لا تعمل هذه الحزمة مع python3.)

  • spyne : إنشاء الخوادم أمر سهل ، مما يجعل العملاء أكثر تحديًا. وثائق تفتقر إلى حد ما.

  • ladon : إنشاء الخوادم يشبه إلى حد كبير في soaplib (باستخدام الديكور). يعرض Ladon المزيد من الواجهات أكثر من SOAP في نفس الوقت دون الحاجة إلى رمز مستخدم إضافي.

  • pysimplesoap : خفيف للغاية ولكنه مفيد لكل من العميل والخادم - يتضمن تكامل خادم web2py الذي يأتي مع web2py.

  • SOAPpy : مميزة عن SOAPpy التي تم استبعادها والتي تم استضافتها في ارتباط ZSI أعلاه ، تم الحفاظ على هذا الإصدار فعليًا حتى عام 2011 ، والآن يبدو أنه تم التخلي عنه أيضًا.
  • soaplib : سهولة استخدام مكتبة python للكتابة والاتصال بخدمات ويب الصابون. تعتبر خدمات الويب المكتوبة مع soaplib بسيطة وخفيفة وتعمل بشكل جيد مع تطبيقات SOAP الأخرى ، ويمكن نشرها كتطبيقات WSGI.
  • osa : مكتبة عميل SOAP python سهلة الاستخدام / سريعة وسهلة الاستخدام.

من أعلاه ، لقد استخدمت فقط SUDS شخصيا ، وأنا أحب ذلك كثيرا.





soap-client