Was SOAP-Client-Bibliotheken existieren für Python, und wo ist die Dokumentation für sie? [geschlossen]

StackOverflow https://stackoverflow.com/questions/206154

  •  03-07-2019
  •  | 
  •  

Frage

Ich habe noch nie verwendet SOAP vor und ich bin irgendwie neu in Python. Ich tue dies, um mich mit beiden Technologien vertraut zu machen. Ich habe installiert SOAPlib und ich habe versucht, ihr Client Dokumentation, aber ich verstehe es nicht allzu gut. Gibt es etwas, was ich sehen kann, die in ist besser geeignet für eine SOAP-Client-Bibliothek für Python zu sein?

Edit:. Nur für den Fall hilft es, ich bin mit Python 2.6

War es hilfreich?

Lösung

Update (2016):

Wenn Sie nur SOAP-Client benötigen, ist es gut Bibliothek mit dem Namen beibehalten zeep . Es unterstützt sowohl Python 2 und 3:)


Update:

Zusätzlich zu dem, was oben erwähnt ist, werde ich finden Sie unter Python WebServices Seite, die ist immer up-to-date mit allen aktiv gepflegt und empfohlene Module SOAP und allen anderen Webservice-Typen.


Leider ist im Moment, ich glaube nicht, dass es eine „beste“ Python SOAP-Bibliothek ist. Jeder der Mainstream diejenigen zur Verfügung hat seine eigenen Vor- und Nachteile.

ältere Bibliotheken:

  • seifigen : War die "beste", aber nicht mehr aufrechterhalten. Funktioniert nicht auf Python 2.5 +

  • ZSI : Sehr schmerzhaft zu verwenden, und die Entwicklung ist langsam. Hat ein Modul namens "SOAPpy", die als seifig unterscheiden (siehe oben).

"Neuere" Bibliotheken:

  • SUDS : Sehr Pythonic und einfache WSDL raubend SOAP-Clients zu erstellen. SOAP-Server zu schaffen, ist ein wenig schwieriger. (Dieses Paket nicht mit Python3 arbeiten. Für Python3 SUDS-py3 sehen)

  • SUDS-py3 : Die Python3 Version von SUDS

  • Spyne : Server erstellen ist recht einfach, Kunden ein wenig schwieriger zu schaffen. Die Dokumentation ist etwas fehlt.

  • ladon : Server erstellen ist ähnlich wie in soaplib (mit einem Dekorateur). Ladon macht mehr Schnittstellen als SOAP zur gleichen Zeit ohne zusätzlichen Benutzercode erforderlich ist.

  • pysimplesoap : sehr leichte, aber nützlich sowohl für Client- und Server - enthält ein web2py Server Integration, die Schiffe mit web2py.

  • SOAPpy : Unterscheidet sich von dem verlassenen SOAPpy, die oben am ZSI Link gehostet wird, wurde diese Version tatsächlich beibehalten bis 2011, jetzt scheint es auch aufgegeben zu werden.
  • soaplib : Einfache Python-Bibliothek für das Schreiben zu verwenden, und rufen Seife Web-Services. WebServices mit soaplib geschrieben ist einfach, leicht, gut mit anderen SOAP-Implementierungen und kann als WSGI-Anwendungen eingesetzt werden.
  • osa . Ein schnell / schlank leicht SOAP Python-Client-Bibliothek verwenden,

Von der oben habe ich nur SUDS persönlich in Anspruch genommen, und ich möchte es sehr.

Andere Tipps

folgte ich dem Rat anderer Antworten auf diese Frage und gab SUDS einen Versuch . Nachdem er es „im Zorn“ Ich muss zustimmen: SUDS ist sehr schön! Sehr zu empfehlen!

Ich habe in Schwierigkeiten HTTPS-basierten Web-Service von hinter einem Proxy-Aufruf. Zum Zeitpunkt des Schreibens dieses Artikels, wirkt sich dies alle Python Web-Service-Clients, die urllib2 verwenden, so dass ich die Lösung hier dokumentieren.

Der urllib2 Modul Versand mit Python 2.6.2 und unter keinem CONNECT an den Proxy für HTTPS-over-HTTP-Proxy-Sitzungen erteilen. Daraus ergibt sich eine lange Auszeit, oder wenn Sie Glück haben, ein Fehler, der wie folgt aussieht:

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

Dies war issue1424152 auf dem Python Bug-Tracker. Es gibt Patches auf den Fehlerreport, der dies in Python 2.x und 3.x. Python beheben Das Problem ist bereits behoben .

Ich hatte gute Erfahrungen mit SUDS https://fedorahosted.org/suds

Gebrauchte ihre Testsuite als Dokumentation.

SUDS ist der Weg zu gehen, keine Frage.

Nur ein FYI für Leute warnen bei SUDS suchen, bis das Ticket gelöst ist, wird SUDS nicht die "Wahl" Tag in WSDL:

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

siehe: Schaum und Wahl-Tag

SUDS ist einfach zu bedienen, aber garantiert nicht einspringenden sein. Wenn Sie die WSDL-Client () Objekt um in einer Gewinde App für eine bessere Leistung zu halten sind, gibt es ein gewisses Risiko beteiligt. Die Lösung für dieses Risiko, das Klon () Methode, führt die unrecoverable Python 5508 Fehler, die wirklich zu drucken scheinen aber nicht eine Ausnahme werfen. Kann verwirrend sein, aber es funktioniert. Es ist immer noch bei weitem die beste Python SOAP-Client.

Wir veröffentlichten eine neue Bibliothek: PySimpleSOAP , die Unterstützung für die einfachen und funktionalen Client bietet /Server. Es Ziele sind: einfache Bedienung und Flexibilität (keine Klassen, automatisch generierten Code oder XML erforderlich ist), WSDL Einkehr und Generation, WS-I-Standard Compliance, Kompatibilität (einschließlich Java AXIS, .NET und Jboss WS). Es ist eingeteilt in web2py enthält Full-Stack-Lösungen (ergänzt andere unterstützte Protokolle wie XML_RPC, JSON, AMF-RPC, etc.) Zu ermöglichen.

Wenn jemand SOAP lernen oder es untersuchen will, ich denke, es ist eine gute Wahl zu starten.

Ich glaube, soaplib seinen SOAP-Client ist veraltet ( ‚Absender‘) für Schaum. An diesem Punkt soaplib wird darauf, ein Web-Framework Agnostiker SOAP-Server ( ‚Empfänger‘) fokussiert. Derzeit soaplib aktiv weiterentwickelt und wird in der Regel in der Python SOAP-Mailingliste diskutiert:

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

Wie ich vorgeschlagen ich empfehle Ihnen, Ihre eigene Rolle. Es ist eigentlich nicht so schwierig, und ich vermute, das ist der Grund, es nicht besser Python SOAP-Bibliotheken gibt.

Schaum ist ziemlich gut. Ich habe versucht, SOAPpy aber nicht bekommen es in ganz dem Weg zur Arbeit musste ich während Schaum so ziemlich sofort gearbeitet.

In mein Schluss haben wir diese:

Soap Client-Seite:

Verwendung nur Suds-jurko ( aktualisiert 2016) Schaum ist sehr gepflegt und aktualisiert.

UPDATE 06/2017: schaum jurko Bibliothek wird nicht aktualisiert und anscheinend aufgegeben ,

I getestet zeep Bibliothek bekam aber Einschränkungen um Token, jetzt nur Usernamen unterstützen, i berichten über einen Fehler rel="nofollow Zeitstempel-Token und Autor aktualisieren sie den Code zu erstellen, es zu beheben.

Zeep gut starten und hat eine gute Dokumentation rel="nofollow, so dass ich vor kurzem meinen Code von Schaum zu zeep migriert und funktioniert gut.

Soap Server-Seite:

Wir haben TGWS, soaplib IMHO (pysimplesoap nicht getestet) verwenden und Hilfe soaplib muss die Wahl sein.

Mit freundlichen Grüßen,

Könnte diese Hilfe: http: //users.skynet .be / pascalbotte / RCX-ws-doc / python.htm # SOAPpy

fand ich es bei der Suche nach wsdl und python, mit dem vernünftigen Wesen, dass Sie eine WSDL-Beschreibung eines SOAP-Servers benötigen würden all nützlichen Client-Wrapper zu tun ....

Wir hatten SOAPpy von Python Web Services verwendet, aber es scheint, dass ZSI (gleiche Quelle) ist ersetzt es.

Im mit SOAPpy mit Python 2.5.3 in einer Produktionsumgebung.

Ich musste manuell ein paar Dateien in SOAPpy (etwas über Header-Code an der falschen Stelle ist) bearbeiten, aber außer, dass es funktioniert und wird dies auch weiterhin sehr zuverlässig tun.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top