มีไลบรารีไคลเอ็นต์ SOAP ใดบ้างสำหรับ Python และเอกสารประกอบสำหรับไลบรารีเหล่านี้อยู่ที่ไหน [ปิด]

ฉันไม่เคยใช้ SOAP มาก่อน และฉันค่อนข้างใหม่กับ Python ฉันทำสิ่งนี้เพื่อให้ตัวเองคุ้นเคยกับเทคโนโลยีทั้งสอง ฉันได้ติดตั้ง SOAPlib และฉันพยายามอ่าน เอกสารไคลเอนต์ แต่ฉันไม่เข้าใจมันดีนัก มีอะไรอีกบ้างที่ฉันสามารถตรวจสอบได้ว่าสิ่งใดเหมาะสมกว่าสำหรับการเป็นไลบรารี SOAP Client สำหรับ Python

แก้ไข: ในกรณีที่ช่วยได้ ฉันใช้ Python 2.6


person damon    schedule 15.10.2008    source แหล่งที่มา
comment
ต้อง ต้องเป็น SOAP เช่น การใช้บริการเว็บที่มีอยู่แล้วหรือไม่ xmlrpclib ของ Python ใช้งานง่ายมาก และฉันได้ย้ายบริการ SOAP ของเราไปยัง XMLRPC ด้วย   -  person Kirk Strauser    schedule 16.10.2008
comment
บางครั้งเราแค่อยากเชื่อมต่อกับบริการที่มีให้ผ่าน SOAP เท่านั้น ใช่แล้ว - python SOAP lib ที่ดีคือสิ่งที่เราต้องการไม่ช้าก็เร็ว ไม่มีใครมีโอกาสโน้มน้าวให้ผู้ให้บริการเปลี่ยน SOAP ด้วยสิ่งที่สะอาดกว่า...   -  person rombarcz    schedule 24.09.2009
comment
ใครสามารถให้ข้อมูลอัปเดตที่เกี่ยวข้องในปี 2554 ได้บ้าง เห็นได้ชัดว่าไม่มีใครสามารถถามคำถามนี้ได้อีก   -  person Marcin    schedule 17.10.2011
comment
FYI: ฉันเปิดโพสต์ที่คล้ายกันซึ่งกำหนดเป้าหมาย SOAP สำหรับ Python 3: stackoverflow.com/questions/7817303/ คืออะไร   -  person gecco    schedule 19.10.2011
comment
ใครก็ตามที่เข้าชมคำถามนี้ โหวตให้เปิดใหม่เพื่อให้ข้อมูลยังคงเป็นปัจจุบัน / คำตอบใหม่สามารถโพสต์ได้   -  person ocodo    schedule 13.09.2013
comment
ฉันได้สร้างข้อเสนอไซต์เพื่อให้คำถามเช่นนี้เป็นบ้านอย่างเป็นทางการที่ห่างไกลจาก Stack Overflow เรียกว่า คำแนะนำโค้ด ช่วยทำให้เป็นจริงด้วยการเข้าร่วมและถามคำถามทันที!   -  person daviewales    schedule 23.03.2014
comment
ดูข้อมูลอัปเดตที่ Python Wiki: wiki.python.org/moin/WebServices   -  person Mr. Napik    schedule 22.08.2016
comment
ในคำตอบสำหรับคำถามนี้ stackoverflow .com/questions/17529955/ ฉันพบการอ้างอิงถึง zeep ซึ่งดูเหมือนว่าจะ เป็นการใช้งาน SOAP ที่ทันสมัยสำหรับ python 2 และ 3   -  person hitokiri82    schedule 10.01.2017
comment
โพสต์เก่า คำตอบเก่า .. หากคุณกำลังมองหาไคลเอ็นต์ Python SOAP ที่ได้รับการดูแลอย่างดีและทันสมัย ​​ลองดูที่ zeep docs .python-zeep.org   -  person return42    schedule 26.10.2017


คำตอบ (14)


อัปเดต (2016):

หากคุณต้องการเพียงไคลเอ็นต์ SOAP ก็จะมีไลบรารีที่ได้รับการดูแลอย่างดีชื่อ zeep รองรับทั้ง Python 2 และ 3 :)


อัปเดต:

นอกเหนือจากสิ่งที่กล่าวไว้ข้างต้น ฉันจะอ้างถึงหน้า Python WebServices ซึ่งพร้อมอยู่เสมอ จนถึงปัจจุบันด้วยโมดูลที่ได้รับการบำรุงรักษาและแนะนำสำหรับ SOAP และบริการเว็บประเภทอื่นๆ ทั้งหมด


น่าเสียดายที่ในขณะนี้ ฉันไม่คิดว่าจะมีไลบรารี Python SOAP ที่ "ดีที่สุด" กระแสหลักแต่ละรายการที่มีอยู่มีข้อดีและข้อเสียของตัวเอง

ห้องสมุดเก่า:

  • SOAPy: เป็น "ดีที่สุด" แต่ไม่ได้รับการดูแลอีกต่อไป ใช้งานไม่ได้กับ Python 2.5+

  • ZSI: ใช้งานได้ลำบากมาก และการพัฒนาก็ช้า มีโมดูลชื่อ "SOAPpy" ซึ่งแตกต่างจาก SOAPy (ด้านบน)

ห้องสมุด "ใหม่กว่า":

  • SUDS: มี Pythonic มากและง่ายต่อการสร้างไคลเอ็นต์ SOAP ที่ใช้ WSDL การสร้างเซิร์ฟเวอร์ SOAP นั้นยากขึ้นเล็กน้อย (แพ็คเกจนี้ใช้ไม่ได้กับ Python3 สำหรับ Python3 ดู SUDS-py3)

  • SUDS-py3: SUDS เวอร์ชัน Python3

  • spyne: การสร้างเซิร์ฟเวอร์เป็นเรื่องง่าย การสร้างไคลเอ็นต์ก็มีความท้าทายเพิ่มขึ้นอีกเล็กน้อย เอกสารยังขาดไปบ้าง

  • ladon: การสร้างเซิร์ฟเวอร์ก็เหมือนกับใน Soaplib (การใช้มัณฑนากร) Ladon เปิดเผยอินเทอร์เฟซมากกว่า SOAP ในเวลาเดียวกันโดยไม่จำเป็นต้องใช้รหัสผู้ใช้เพิ่มเติม

  • pysimplesoap: มีขนาดเล็กมากแต่มีประโยชน์สำหรับทั้งไคลเอนต์และเซิร์ฟเวอร์ - รวมการบูรณาการเซิร์ฟเวอร์ web2py ที่มาพร้อมกับ web2py.

  • SOAPpy: แตกต่างจาก SOAPpy ที่ถูกละทิ้งซึ่งโฮสต์อยู่ที่ลิงก์ ZSI ด้านบน เวอร์ชันนี้ได้รับการปรับปรุงจริงจนถึงปี 2011 ตอนนี้ดูเหมือนว่าจะถูกทอดทิ้งเช่นกัน
  • soaplib: ไลบรารี Python ใช้งานง่ายสำหรับการเขียนและเรียกใช้บริการเว็บ Soap บริการเว็บที่เขียนด้วย Soaplib นั้นเรียบง่าย น้ำหนักเบา ทำงานได้ดีกับการใช้งาน SOAP อื่นๆ และสามารถใช้เป็นแอปพลิเคชัน WSGI ได้
  • osa: ไลบรารีไคลเอ็นต์ SOAP python ที่รวดเร็ว/บางและใช้งานง่าย

จากที่กล่าวมาข้างต้น ฉันเคยใช้ SUDS เป็นการส่วนตัวเท่านั้น และฉันชอบมันมาก

person Community    schedule 16.10.2008
comment
Python 2.5.2, SOAPpy 0.12.0 และไคลเอนต์ SOAP ของฉันใช้งานได้ - person bortzmeyer; 16.10.2008
comment
ดูเหมือนว่าคุณสะกด SOAPpy ผิด หรือสบู่และสบู่มีอยู่ทั้งคู่? คุณอาจต้องการแก้ไขเพื่อชี้แจง - person amarillion; 15.05.2009
comment
SOAPy และ SOAPpy นั้นแตกต่างกันจริงๆ ฉันได้แก้ไขเพื่อชี้แจงและเปลี่ยนโพสต์เป็นวิกิชุมชน - person Samat Jain; 22.05.2009
comment
+1 สำหรับ SUDS ห้องสมุดที่ยอดเยี่ยม! ฉันประสบปัญหาในการใช้ SUDS กับบริการเว็บ HTTPS ที่อยู่เบื้องหลังพร็อกซี ปรากฎว่าเป็นปัญหาที่ทราบของ Python urllib2 ดูคำตอบของฉันสำหรับรายละเอียดเพิ่มเติม - person sstock; 06.08.2009
comment
โดยส่วนตัวแล้วฉันประสบความสำเร็จอย่างมากกับ SOAPpy แม้ว่าบางครั้งฉันจะต้องเขียน wrappers เพื่อแก้ไขบางอย่าง ( .NET ใช้, ให้บริการ WSDL ) - person sfossen; 20.10.2010
comment
ฟองอาจจะดีมาก แต่มันมีปัญหากับ ssl ((( - person DataGreed; 23.11.2010
comment
Suds ยังไม่รองรับการตอบกลับแบบหลายส่วนหากไม่มีแพตช์ของเรา: fedorahosted.org/suds/ticket/308 - person akaihola; 29.11.2011
comment
ฉันลองใช้ SUD แต่มันวนซ้ำไม่สิ้นสุดเมื่อเปิด WSDL จากนั้น python ก็แสดงข้อผิดพลาดขีดจำกัดการเรียกซ้ำ ฉันพบตั๋วที่เปิดอยู่นี้เกี่ยวกับปัญหา: fedorahosted.org/suds/ticket/239 เห็นได้ชัดว่าสิ่งนี้ เป็นข้อผิดพลาดในการทำลายห้องสมุดเมื่อ 3 ปีที่แล้วและยังไม่ได้รับการแก้ไข - person Buttons840; 28.02.2012
comment
คุณจะเขียนเซิร์ฟเวอร์โดยใช้ SUDS ได้อย่างไร ไม่เคยเห็นตัวอย่างการทำงานเลย - person t00ny; 10.04.2013
comment
มีทางแยกของ SUDS ที่ได้รับการปรับปรุงไว้ที่ bitbucket.org/jurko/suds - person Sjaak Trekhaak; 28.06.2013
comment
วันนี้ฉันเริ่มใช้ SUDS เพื่อดึงข้อมูลเท่านั้น มันจัดการการรับรองความถูกต้อง apikey พื้นฐานในส่วนหัวของ Soap โดยไม่มีปัญหาใดๆ และการตอบกลับก็ค่อนข้างง่ายในการแยกวิเคราะห์ เอกสารก็เหมาะสมเช่นกัน - person saccharine; 06.09.2013
comment
SOAPpy ได้รับการฟื้นฟูเล็กน้อยและได้รับการอัปเดตบางอย่างในปี 2014 ลองดูที่นี่: pypi.python.org/ pypi/SOAPpy. - person Joe L.; 08.04.2015
comment
ฉันใช้ suds-jurko ใช้ได้กับ python 3.3 ห้องสมุดสุดยอดจริงๆ!! - person Ward; 30.04.2015
comment
สิ่งเหล่านี้หลายรายการดูล้าสมัย แต่ดูเหมือนว่า osa จะได้รับการบำรุงรักษา บันทึกเป็นเอกสาร และใช้งานง่าย - person razz0; 07.12.2015
comment
ขอบคุณมากสำหรับการกลับมาในปี 2559 และอัปเดตสิ่งนี้! ???? - person WhyNotHugo; 10.03.2017
comment
ขณะนี้เพจที่โฮสต์โดย Fedora ของ SUDS ไม่สามารถใช้งานได้ นอกจากนี้ยังมีเวอร์ชัน Python3 ใหม่ซึ่งมีให้บริการในชื่อ suds-py3 - person GergelyPolonkai; 01.03.2018
comment
อัปเดตจากปี 2018 - ดูเหมือนว่า Zeep จะเป็นหนทางไป - ไลบรารีพื้นฐานที่ทันสมัยที่สุด มีการสนับสนุนอย่างกว้างขวาง - person Damian; 10.06.2018
comment
ในกรณีที่มีใครสามารถให้ข้อมูลได้ว่ารายการใดบ้างที่รองรับใบรับรอง TLS ฝั่งไคลเอ็นต์ผ่าน HSM (PKCS11) เราจะยินดีเป็นอย่างยิ่ง! - person Petr; 16.04.2019

ฉันทำตามคำแนะนำของคำตอบอื่นๆ สำหรับคำถามนี้ และลองใช้ SUDS เลย ใช้แล้ว "โกรธ" ก็ต้องยอมรับว่า SUDS ดีมาก! ขอแนะนำ!

ฉันประสบปัญหาในการเรียกบริการเว็บที่ใช้ HTTPS จากด้านหลังพรอกซี ในขณะที่เขียนบทความนี้ สิ่งนี้จะส่งผลต่อไคลเอนต์บริการเว็บ Python ทั้งหมด ที่ใช้ 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 มีแพตช์แนบมากับรายงานข้อบกพร่องที่จะแก้ไขปัญหานี้ใน Python 2.x และ Python 3.x ปัญหาได้รับการแก้ไขแล้ว

person Community    schedule 06.08.2009
comment
เพิ่งติดตั้งและถึงแม้ว่าฉันจะยังใหม่กับ Python แต่ก็รู้สึกว่าใช้งานง่ายมากและฉันสามารถส่งคำขอ SUDS ได้ในไม่กี่นาที ห้องสมุดเยี่ยมมาก! - person Leonid; 11.06.2011
comment
รบกวนอัพเดตอันนี้หน่อยค่ะ. ฉันถามเพราะฉันคลิกลิงก์และข้อผิดพลาดได้รับการแก้ไขแล้ว - person tshepang; 27.06.2011
comment
ความอัปยศดูเหมือนว่าจะไม่ได้รับการดูแลอีกต่อไป - person paulm; 22.10.2013
comment
ก่อนหน้าเรา Suds ก็ใช้ได้ดีเช่นกัน.. อย่างไรก็ตาม มันช้ามาก การดึงไฟล์สบู่ xml ใช้เวลา 0.5 วินาที และการประมวลผลใช้เวลา 5 วินาทีบนเครื่องดูอัลคอร์! - person TjerkW; 05.09.2014
comment
@paulm: ลอง bitbucket.org/jurko/suds - person johndodo; 25.02.2016
comment
ในปี 2020 ฉันอยากจะแนะนำ SUDS มากกว่า zeep - person Mikhail; 14.07.2020

ฉันมีประสบการณ์ที่ดีกับ SUDS https://fedorahosted.org/suds

ใช้ TestSuite เป็นเอกสารประกอบ

person Community    schedule 15.10.2008
comment
SUDS สุดยอดมาก! ใช้งานง่ายมาก เอกสารดี สิ่งดีๆ! - person Sander Versluys; 05.10.2011
comment
บำรุงรักษา python3 รองรับ fork: suds-jurko pip install suds-jurko - person laffuste; 19.06.2015
comment
ฉันกำลังพยายามเรียก async soap api ด้วยฟอง ทำงานได้ดีแต่ไม่ได้รับการตอบสนองใดๆ ใครสามารถช่วยในเรื่องนั้นได้ ถาม: stackoverflow.com/questions/39227719/ - person Vikram Singh Chandel; 30.08.2016

SUDS คือหนทางที่จะไป ไม่ต้องสงสัยเลย

person Community    schedule 25.07.2009
comment
และยังล้มเหลวในไฟล์ WSDL จำนวนมากอีกด้วย เพื่อสนับสนุนการอ้างสิทธิ์นั้น - ตัวอย่างเช่น Bing map API บางส่วนล้มเหลวและไม่สามารถแยกวิเคราะห์ได้ - person ; 10.01.2011
comment
ฉันพบว่า SUDS รองรับจุดสิ้นสุด SSL - person leonigmig; 06.05.2011

เป็นเพียงคำเตือน FYI สำหรับผู้ที่ดู SUDS จนกว่าตั๋วนี้จะได้รับการแก้ไข SUDS ไม่รองรับแท็ก "ตัวเลือก" ใน WSDL:

https://fedorahosted.org/suds/ticket/342

ดู: suds และแท็กตัวเลือก

person Doug    schedule 01.06.2011

SUDS ใช้งานง่าย แต่ไม่รับประกันว่าจะกลับเข้ามาใหม่ได้ หากคุณเก็บวัตถุ WSDL Client() ไว้ในแอปแบบเธรดเพื่อประสิทธิภาพที่ดีขึ้น ก็มีความเสี่ยงอยู่บ้าง วิธีแก้ไขความเสี่ยงนี้คือเมธอด clone() พ่นข้อผิดพลาด Python 5508 ที่ไม่สามารถกู้คืนได้ ซึ่งดูเหมือนว่าจะพิมพ์ออกมาแต่ไม่ได้ทำให้เกิดข้อยกเว้นจริงๆ อาจสร้างความสับสนแต่ได้ผล มันยังคงเป็นไคลเอนต์ Python SOAP ที่ดีที่สุด

person Community    schedule 25.02.2010

เราเปิดตัวไลบรารีใหม่: PySimpleSOAP ที่ให้การสนับสนุนไคลเอนต์/เซิร์ฟเวอร์ที่เรียบง่ายและใช้งานได้ เป้าหมายคือ: ใช้งานง่ายและมีความยืดหยุ่น (ไม่ต้องใช้คลาส, ต้องใช้โค้ดที่สร้างอัตโนมัติหรือ xml), วิปัสสนาและการสร้าง WSDL, การปฏิบัติตามมาตรฐาน WS-I, ความเข้ากันได้ (รวมถึง Java AXIS, .NET และ Jboss WS) รวมอยู่ใน Web2Py เพื่อเปิดใช้งานโซลูชันแบบเต็มสแต็ก (เสริมโปรโตคอลที่รองรับอื่น ๆ เช่น XML_RPC, JSON, AMF-RPC เป็นต้น)

หากใครกำลังเรียนรู้ SOAP หรือต้องการตรวจสอบมัน ฉันคิดว่านี่เป็นทางเลือกที่ดีที่จะเริ่ม

person reingart    schedule 07.08.2010

ฉันเชื่อว่า Soaplib ได้เลิกใช้ไคลเอ็นต์ SOAP ('ผู้ส่ง') แล้วเพื่อสนับสนุนสบู่ ณ จุดนี้ Soaplib มุ่งเน้นไปที่การเป็นเซิร์ฟเวอร์ SOAP ที่ไม่เชื่อเรื่องพระเจ้าในเฟรมเวิร์กเว็บ ('ตัวรับ') ปัจจุบัน Soaplib อยู่ระหว่างการพัฒนาและมักจะกล่าวถึงในรายชื่อผู้รับจดหมาย Python SOAP:

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

person bradallen137    schedule 31.08.2010

ในข้อสรุป ของฉัน เรามีสิ่งนี้:

ฝั่งไคลเอ็นต์สบู่:

ใช้ เท่านั้น Suds-jurko (อัปเดต 2016) suds ได้รับการดูแลและปรับปรุงอย่างดี

อัปเดตเมื่อ 06/2017: ไลบรารี suds-jurko ไม่ได้รับการอัปเดตและ เห็นได้ชัดว่าถูกละทิ้ง,

ฉันทดสอบไลบรารี่ zeep แต่มีข้อจำกัดเกี่ยวกับโทเค็น ตอนนี้รองรับแค่ UsernameToken เท่านั้น ฉันรายงาน bug เพื่อสร้างโทเค็นการประทับเวลาและผู้เขียนอัปเดตโค้ดเพื่อแก้ไข

Zeep เริ่มต้นได้ดีและมีเอกสารประกอบ ที่ดี ดังนั้นฉันจึงเพิ่งย้ายโค้ดของฉัน จากน้ำสบู่ไปจนถึง zeep และทำงานได้ดี

ฝั่งเซิร์ฟเวอร์สบู่:

เรามี TGWS, Soaplib (ไม่ได้ทดสอบ pysimplesoap) การใช้ IMHO และช่วย Soaplib ต้องเป็นตัวเลือก

ขอแสดงความนับถืออย่างสูง,

person Cristian Salamea    schedule 31.08.2010
comment
มีเอกสาร/ตัวอย่างที่ดีสำหรับ Suds-jurko หรือไม่ ใน repo มีไฟล์ .rst อยู่สองสามไฟล์ แต่มีเอกสารเกี่ยวกับวิธีการใช้ไลบรารีไม่มากนัก - person ierdna; 17.06.2017

ตามที่ฉันแนะนำ ที่นี่ ฉันขอแนะนำให้คุณม้วนของคุณเอง จริงๆ แล้วมันไม่ได้ยากขนาดนั้น และฉันสงสัยว่านั่นคือเหตุผลว่าทำไมจึงไม่มีไลบรารี่ Python SOAP ที่ดีกว่านี้

person Greg    schedule 16.10.2008

โซดาค่อนข้างดี ฉันลองใช้ SOAPpy แต่ไม่ได้ทำงานอย่างที่ฉันต้องการ ในขณะที่ suds ก็ทำงานได้ค่อนข้างทันที

person Pratik Patel    schedule 24.03.2011

สิ่งนี้สามารถช่วยได้: http://users.skynet.be/pascalbotte/rcx-ws-doc/python.htm#SOAPPY

ฉันพบโดยการค้นหา wsdl และ python โดยมีเหตุผลว่าคุณจะต้องมีคำอธิบาย wsdl ของเซิร์ฟเวอร์ SOAP เพื่อทำ wrappers ไคลเอนต์ที่มีประโยชน์ ....

person Daren Thomas    schedule 15.10.2008

เราใช้ SOAPpy จาก Python Web Services แต่ดูเหมือนว่า ZSI (แหล่งเดียวกัน) จะมาแทนที่

person Kirk Strauser    schedule 15.10.2008

ฉันใช้ SOAPpy กับ Python 2.5.3 ในการตั้งค่าการใช้งานจริง

ฉันต้องแก้ไขไฟล์สองสามไฟล์ด้วยตนเองใน SOAPpy (บางอย่างเกี่ยวกับโค้ดส่วนหัวอยู่ผิดที่) แต่นอกเหนือจากนั้น มันใช้งานได้และยังคงทำได้อย่างน่าเชื่อถือต่อไป

person carl    schedule 18.03.2010
comment
เราทำเช่นเดียวกันและใช้ SOAPpy กับ Python 2.6.3 - person Joe L.; 31.08.2010