पायथन के लिए SOAP क्लाइंट लाइब्रेरी मौजूद हैं, और उनके लिए प्रलेखन कहाँ है? [बन्द है]


333

मैंने पहले कभी SOAP का उपयोग नहीं किया है और मैं Python के लिए नया हूं। मैं खुद को दोनों प्रौद्योगिकियों से परिचित कराने के लिए ऐसा कर रहा हूं। मैंने SOAPlib स्थापित किया है और मैंने उनके क्लाइंट प्रलेखन को पढ़ने की कोशिश की है , लेकिन मैं इसे बहुत अच्छी तरह से नहीं समझता। क्या कुछ और है जो मैं देख सकता हूँ कि पायथन के लिए SOAP क्लाइंट लाइब्रेरी होने के लिए अधिक अनुकूल है?

संपादित करें: बस अगर यह मदद करता है, तो मैं पाइथन 2.6 का उपयोग कर रहा हूं।


1
यह होता है है इस तरह के पहले से मौजूद वेब सेवाओं का उपयोग कर के रूप में, सोप होने के लिए? पायथन का xmlrpclib उपयोग करने के लिए सरल है और मैंने इसके साथ हमारी SOAP सेवाओं को XMLRPC में स्थानांतरित कर दिया है।
कर्क स्ट्रूसर

26
कभी-कभी कोई बस उस सेवा से जुड़ना चाहता है जो केवल SOAP पर प्रदान की जाती है इसलिए हां - अच्छा अजगर SOAP काम कुछ ऐसा है जो जल्द या बाद में आवश्यक होगा। सेवा प्रदाता को कुछ "क्लीनर" के साथ SOAP को बदलने के लिए समझाने का कोई मौका नहीं होगा ...
rombarcz

34
क्या कोई 2011 में प्रासंगिक अद्यतन प्रदान कर सकता है? जाहिरा तौर पर कोई भी कभी भी इस सवाल को फिर से नहीं पूछ सकता है।
मार्सिन

1
FYI करें: मैंने एक समान पोस्ट खोला है जो पायथन 3 के लिए SOAP को लक्षित करता है : stackoverflow.com/questions/7817303/…
gecco

5
कोई भी व्यक्ति इस प्रश्न पर जाता है, उसे फिर से खोलने के लिए मतदान करें ताकि सूचना चालू रह सके / नए उत्तर पोस्ट किए जा सकें।
ओसोडो

जवाबों:


388

अपडेट (2016):

यदि आपको केवल SOAP क्लाइंट की आवश्यकता है, तो अच्छी तरह से बनाए रखा पुस्तकालय है जिसे जीप कहा जाता है । यह पायथन 2 और 3 दोनों का समर्थन करता है :)


अपडेट करें:

इसके अतिरिक्त जो ऊपर वर्णित है, मैं पायथन वेबसर्विस पेज का उल्लेख करूंगा, जो एसओएपी और अन्य सभी वेबसर्विट प्रकारों के लिए सक्रिय रूप से बनाए और अनुशंसित मॉड्यूल के साथ हमेशा अद्यतित रहता है ।


दुर्भाग्य से, इस समय, मुझे नहीं लगता है कि "बेस्ट" पायथन सोप लाइब्रेरी है। उपलब्ध मुख्यधारा के प्रत्येक के पास अपने स्वयं के पेशेवरों और विपक्ष हैं।

पुराने पुस्तकालय:

  • SOAPy : "सर्वश्रेष्ठ" था, लेकिन अब इसे बनाए नहीं रखा गया था। अजगर 2.5+ पर काम नहीं करता है

  • ZSI : उपयोग करने के लिए बहुत दर्दनाक है, और विकास धीमा है। "SOAPpy" नामक एक मॉड्यूल है, जो SOAPy (ऊपर) से अलग है।

"नया" पुस्तकालय:

  • साबुन का झाग : बहुत pythonic, और WSDL लेने वाली सोप ग्राहकों को बनाने के लिए आसान। SOAP सर्वर बनाना थोड़ा अधिक कठिन है। (यह पैकेज Python3 के साथ काम नहीं करता है। Python3 के लिए SUDS-py3 देखें)

  • SUDS-p33 : SUDS का पायथन 3 संस्करण

  • spyne : सर्वर बनाना आसान है, ग्राहकों को थोड़ा अधिक चुनौतीपूर्ण बनाना है। डॉक्यूमेंटेशन में कुछ कमी है।

  • ladon : सर्वर बनाना सोपलिब (डेकोरेटर का उपयोग करना) में बहुत पसंद है। अतिरिक्त उपयोगकर्ता कोड की आवश्यकता के बिना लाडन एक ही समय में SOAP से अधिक इंटरफेस को उजागर करता है।

  • pysimplesoap : क्लाइंट और सर्वर दोनों के लिए बहुत हल्का लेकिन उपयोगी है - इसमें web2py सर्वर एकीकरण शामिल है जो web2py के साथ जहाज करता है।

  • SOAPpy : ऊपर दिए गए ZAP लिंक पर होस्ट किए गए SOAPpy से अलग, यह संस्करण वास्तव में 2011 तक बनाए रखा गया था, अब इसे भी छोड़ दिया गया लगता है।
  • सोपलिब : साबुन वेब सेवाओं को लिखने और कॉल करने के लिए पायथन लाइब्रेरी का उपयोग करना आसान है। सोपलिब के साथ लिखी गई वेबसर्विस सरल, हल्की, अन्य SOAP कार्यान्वयन के साथ अच्छी तरह से काम करती हैं, और इसे WSGI अनुप्रयोगों के रूप में तैनात किया जा सकता है।
  • ओसा : सोप पायथन क्लाइंट लाइब्रेरी का उपयोग करने के लिए एक तेज़ / पतला आसान।

उपरोक्त में से, मैंने केवल व्यक्तिगत रूप से SUDS का उपयोग किया है, और मुझे यह बहुत पसंद आया।


2
SOAPy और SOAPpy वास्तव में अलग हैं। मैंने स्पष्ट करने के लिए संपादन किया है, और पोस्ट को एक सामुदायिक विकि में बदल दिया है।
समात जैन

17
SUDS के लिए +1, बढ़िया लाइब्रेरी! मैं प्रॉक्सी के पीछे HTTPS वेब सेवाओं के साथ SUDS का उपयोग करके समस्याओं में भाग गया। यह एक ज्ञात पायथन urllib2मुद्दा है। अधिक जानकारी के लिए मेरा जवाब देखें।
sstock

4
मैंने एसयूडी की कोशिश की, लेकिन डब्ल्यूएसडीएल खोलने पर यह एक अनंत लूप में चला गया; तब अजगर ने एक पुनरावृत्ति सीमा त्रुटि को फेंक दिया। मुझे इस मुद्दे के बारे में यह खुला टिकट मिला: fedorahosted.org/suds/ticket/239 जाहिर तौर पर यह 3 साल पहले बग को तोड़ने वाली एक लाइब्रेरी थी, और अभी भी इसे ठीक नहीं किया गया है।
बटंस Feb४०


1
मैंने आज केवल डेटा लाने के लिए SUDS का उपयोग करना शुरू कर दिया है। इसने बिना किसी समस्या के साबुन हेडर में एक बुनियादी एपिक ऑडी को संभाला, और प्रतिक्रियाओं को पार्स करना काफी आसान था। प्रलेखन भी परी सभ्य था।
saccharine

47

मैंने इस प्रश्न के अन्य उत्तरों की सलाह का पालन किया और SUDS को आजमाया । "क्रोध में" इसका उपयोग करने के बाद मुझे सहमत होना चाहिए: SUDS बहुत अच्छा है! अत्यधिक सिफारिशित!

मैं एक प्रॉक्सी के पीछे से HTTPS- आधारित वेब सेवाओं को कॉल करने में परेशानी में था। इस लेखन के समय, यह उन सभी पायथन वेब-सेवा ग्राहकों को प्रभावित करता है जो उपयोग करते हैं urllib2, इसलिए मैं यहां समाधान का दस्तावेजीकरण करूंगा।

urllib2अजगर 2.6.2 और नीचे के साथ मॉड्यूल शिपिंग एक जारी नहीं करेगा CONNECTHTTPS-ओवर-HTTP-प्रॉक्सी सत्र के लिए प्रॉक्सी के लिए। यह लंबे समय तक परिणाम देता है, या यदि आप भाग्यशाली हैं, तो एक त्रुटि जो दिखती है:

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

यह पाइथन बग ट्रैकर पर जारी किया गया था । बग रिपोर्ट से जुड़े पैच हैं जो इसे पायथन 2.x और पायथन 3.x में ठीक कर देंगे। मुद्दा पहले से तय है


बस इसे स्थापित किया और भले ही मैं पायथन के लिए बिल्कुल नया हूं, यह बहुत सहज महसूस किया और मैं SUDS अनुरोधों को मिनटों में भेज सकता हूं। पुस्तकालय महान है!
लियोनिद

1
क्या आपको यह अपडेट करने का मन है? मैं पूछता हूं क्योंकि मैंने लिंक पर क्लिक किया है, और बग ठीक हो गया है।
tshepang

3
शर्म की बात है कि अब इसका रख
रखाव

हमेशा हमें सूद भी अच्छी तरह से काम करता है .. हालाँकि यह बहुत धीमा है। एक xml साबुन फ़ाइल को पुनर्प्राप्त करने में 0.5 सेकंड लगते हैं, और इसे संसाधित करने में दोहरी कोर मशीन पर 5 सेकंड लगते हैं!
TjerkW


19

मुझे SUDS https://fedorahosted.org/suds के साथ अच्छा अनुभव था

प्रलेखन के रूप में उनके TestSuite का इस्तेमाल किया।


1
SUDS कमाल है! वास्तव में प्रयोग करने में आसान, अच्छा डॉक्स, बढ़िया सामान!
Sander Versluys

1
बनाए रखा, python3 समर्थित कांटा: suds-jurkopip install suds-jurko
laffuste

मैं suds के साथ async साबुन एपीआई को कॉल करने की कोशिश कर रहा हूं, अच्छी तरह से काम कर रहा हूं, लेकिन कोई प्रतिक्रिया नहीं मिल रही है, क्या कोई मेरी मदद कर सकता है, hr my Q: stackoverflow.com/questions/39227719/…
विक्रम सिंह चंदेल

10

SUDS जाने का रास्ता है, इसके बारे में कोई सवाल नहीं।


5
और यह WSDL फ़ाइलों की एक बड़ी संख्या पर भी विफल रहता है। उस दावे का समर्थन करने के लिए - बिंग ने एपीआई के उदाहरणों का मानचित्र तैयार किया, इनमें से कुछ असफल और सूद उन्हें पार्स नहीं कर सकते।

3
मैंने पाया कि SUDS SSL समापन बिंदु का समर्थन करता है।
लीओनिगम


6

SUDS का उपयोग करना आसान है, लेकिन फिर से प्रवेश करने की गारंटी नहीं है। यदि आप WSDL क्लाइंट () ऑब्जेक्ट को बेहतर प्रदर्शन के लिए थ्रेडेड ऐप में रख रहे हैं, तो इसमें कुछ जोखिम भी शामिल है। इस जोखिम का समाधान, क्लोन () विधि, अपरिवर्तनीय पायथन 5508 बग को फेंकता है, जो प्रिंट करने के लिए लगता है लेकिन वास्तव में अपवाद नहीं फेंकता है। भ्रामक हो सकता है, लेकिन यह काम करता है। यह अभी तक सबसे अच्छा पायथन सोप क्लाइंट है।


4

हमने एक नई लाइब्रेरी जारी की: PySimpleSOAP , जो सरल और कार्यात्मक क्लाइंट / सर्वर के लिए समर्थन प्रदान करती है। यह लक्ष्य हैं: उपयोग में आसानी और लचीलेपन (कोई वर्ग, ऑटोजेनरेटेड कोड या xml की आवश्यकता नहीं है), WSDL आत्मनिरीक्षण और पीढ़ी, WS-I मानक अनुपालन, संगतता (जावा AXIS, .NET और Jboss WS सहित)। इसे पूर्ण-स्टैक समाधान (XML_RPC, JSON, AMF-RPC, आदि जैसे अन्य समर्थित प्रोटोकॉल के पूरक) को सक्षम करने के लिए Web2Py में शामिल किया गया है।

अगर कोई SOAP सीख रहा है या वह इसकी जांच करना चाहता है, तो मुझे लगता है कि इसे शुरू करना एक अच्छा विकल्प है।


2

मेरा मानना ​​है कि सोपलिब ने अपने SOAP ग्राहक ('प्रेषक') को सूद के पक्ष में हटा दिया है। इस बिंदु पर सोशलिब एक वेब फ्रेमवर्क एग्नोस्टिक एसओएपी सर्वर ('रिसीवर') होने पर केंद्रित है। वर्तमान में सोपलिब सक्रिय विकास के तहत है और आमतौर पर पायथन सोप मेलिंग सूची में चर्चा की जाती है:

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


2

में मेरी निष्कर्ष हम इस है:

साबुन ग्राहक पक्ष:

केवल Suds-jurko (2016 अपडेटेड) suds का उपयोग अच्छी तरह से बनाए रखा और अपडेट किया गया है।

अद्यतन 06/2017: suds -jurko पुस्तकालय अपडेट नहीं किया गया है और स्पष्ट रूप से छोड़ दिया गया है ,

मैंने जीप लाइब्रेरी का परीक्षण किया, लेकिन टोकन के चारों ओर सीमाएं मिलीं, अब तक केवल उपयोगकर्ता नाम का समर्थन करें, मैं बग की रिपोर्ट करता हूं टाइमस्टैम्प टोकन बनाने के लिए और लेखक इसे ठीक करने के लिए कोड को अपडेट करता है।

जीप अच्छी शुरुआत करती है और उसके पास अच्छे दस्तावेज हैं , इसलिए मैंने हाल ही में अपने कोड को सूड्स से जीप में स्थानांतरित किया और ठीक काम करता है।

साबुन सर्वर साइड:

हमारे पास TGWS, सोशलिब (pysimplesoap परीक्षण नहीं किया गया) है, IMHO का उपयोग करें और साबुनलीब का उपयोग करना पसंद करना चाहिए।

सादर,


Suds-jurko के लिए अच्छे दस्तावेज / नमूने हैं? रेपो में कुछ .rst फाइलें होती हैं लेकिन लाइब्रेरी का उपयोग कैसे करें, इसके प्रलेखन के तरीके में ज्यादा नहीं।
इर्दना

1

जैसा कि मैंने यहां सुझाव दिया है कि मैं आपको अपना रोल करने की सलाह देता हूं। यह वास्तव में उतना मुश्किल नहीं है और मुझे संदेह है कि यही कारण है कि वहां बेहतर पायथन सोप लाइब्रेरी नहीं हैं।


1

सूद बहुत अच्छा है। मैंने SOAPpy की कोशिश की, लेकिन इसे उस तरह से काम करने के लिए नहीं मिला जिस तरह से मुझे ज़रूरत थी जबकि suds ने बहुत सीधे काम किया।


0

यह मदद कर सकता है: http://users.skynet.be/pascalbotte/rcx-ws-doc/python.htm#SOAPPY

मैं इसे खोज रहा था wsdlऔर pythonतर्कसंगत होने के साथ, कि आपको किसी भी उपयोगी क्लाइंट रैपर को करने के लिए SOAP सर्वर के wsdl विवरण की आवश्यकता होगी ...।



0

उत्पादन सेटिंग में पायथन 2.5.3 के साथ SOAPpy का उपयोग कर Im।

मुझे SOAPpy में कुछ फ़ाइलों को मैन्युअल रूप से संपादित करना था (हेडर कोड गलत जगह होने के बारे में कुछ) लेकिन इसके अलावा यह काम करता था और बहुत मज़बूती से करता रहता है।


1
हमने ऐसा ही किया और पायथन 2.6.3 के साथ SOAPpy का उपयोग कर रहे हैं।
जो एल।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.