Quelles bibliothèques client SOAP existent pour Python, et où est la documentation pour elles? [fermé]

Je n'ai jamais utilisé SOAP avant et je suis un peu nouveau en Python. Je fais ça pour me familiariser avec les deux technologies. J'ai installé SOAPlib et j'ai essayé de lire la documentation Client , mais je ne la comprends pas très bien. Y a-t-il autre chose que je peux regarder qui est plus approprié pour être une bibliothèque client SOAP pour Python?

Edit: Juste au cas où ça aide, je suis en utilisant La version 2.6 de Python.

309
demandé sur osiris 2008-10-15 23:50:07

14 réponses

mise à jour (2016):

si vous n'avez besoin que du client SOAP, il y a une bibliothèque bien entretenue appelée zeep . Il supporte à la fois Python 2 et 3:)


mise à jour:

en plus de ce qui est mentionné ci-dessus, je vais me référer à Python WebServices page qui est toujours à jour avec tous les modules activement maintenus et recommandés à SOAP et tous les autres types de webservice.


malheureusement, pour le moment, je ne pense pas qu'il existe une" meilleure " bibliothèque de savon Python. Chacun des principaux produits disponibles a ses avantages et ses inconvénients.

les Anciens des bibliothèques:

  • SOAPy : était le " meilleur," mais ce n'est plus maintenue. Ne fonctionne pas sur Python 2.5+

  • ZSI : très douloureux à utiliser, et le développement est lent. A un module appelé "SOAPpy", qui est différent de SOAPy (ci-dessus).

" nouvelles "bibliothèques:

  • SUDS : clients SOAP très Pythoniques et faciles à créer. La création de SAVON les serveurs sont un peu plus difficiles. (Ce paquet ne fonctionne pas avec python3.)

  • spyne : créer des serveurs est facile, créer des clients un peu plus difficile. La Documentation est quelque peu insuffisante.

  • ladon : créer des serveurs est un peu comme dans soaplib (en utilisant un décorateur). Ladon expose en même temps plus d'interfaces que SOAP sans code utilisateur supplémentaire nécessaire.

  • pysimplesoap : très léger mais utile à la fois pour le client et le serveur - comprend une intégration de serveur web2py que les navires avec web2py.

  • SOAPpy : distincte du soappy abandonné qui est hébergé sur le lien ZSI ci-dessus, cette version a été effectivement maintenu jusqu'en 2011, maintenant il semble être abandonné aussi.
  • soaplib : bibliothèque python facile à utiliser pour écrire et appeler des services soap web. Les services web écrits avec soaplib sont simples, légers, fonctionnent bien avec d'autres implémentations SOAP, et peuvent être déployés en tant qu'applications WSGI.
  • osa : une bibliothèque de clients SOAP python rapide et facile à utiliser.

de ce qui précède, je n'ai utilisé SUDS personnellement, et je l'ai beaucoup aimé.

370
répondu Samat Jain 2017-06-15 00:20:15

j'ai suivi les conseils d'autres réponses à cette question et ai donné SUDS un essai. Après l'avoir utilisé "dans la colère" je dois être d'accord: SUDS est très agréable! Fortement recommandé!

j'ai rencontré des problèmes en appelant des services web basés sur HTTPS à partir de derrière un proxy. Au moment d'écrire ces lignes, cela affecte tous les les clients du service Web Python qui utilisent urllib2 , donc je documenterai la solution ici.

le L'expédition de modules urllib2 avec python 2.6.2 et inférieur n'émettra pas de CONNECT au proxy pour les sessions HTTPS-over-HTTP-proxy. Cela se traduit par un délai long, ou si vous êtes chanceux, une erreur qui ressemble à:

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

C'était issue1424152 sur le bug tracker Python. Il y a des correctifs attachés au rapport de bogue qui corrigeront cela en Python 2.x et Python 3.x. Le problème est déjà résolu .

46
répondu sstock 2012-06-07 15:01:26

j'ai eu une bonne expérience avec les SUDS https://fedorahosted.org/suds

a utilisé leur TestSuite comme documentation.

19
répondu Rajesh 2008-10-15 20:04:59

SUDS est le chemin à parcourir, pas de question à ce sujet.

10
répondu Peter Mortensen 2009-12-14 23:04:53

juste un avertissement FYI pour les gens qui regardent des SUDS, jusqu'à ce que ce billet est résolu, SUDS ne supporte pas l'étiquette "choice" dans WSDL:

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

voir: suds et le choix de la balise

8
répondu Doug 2017-05-23 11:47:36
Le SUDS

est facile à utiliser, mais il n'est pas garanti qu'il soit réentraîné. Si vous gardez l'objet WSDL Client() dans une application filetée pour une meilleure performance, il y a un certain risque. La solution à ce risque, la méthode clone (), lance le bug non récupérable Python 5508, qui semble imprimer mais pas vraiment jeter une exception. Peut être déroutant, mais il fonctionne. C'est toujours de loin le meilleur client de Python SOAP.

6
répondu 2010-02-25 17:48:04

nous avons publié une nouvelle bibliothèque: PySimpleSOAP , qui fournit le soutien pour simple et fonctionnel client/serveur. Ses objectifs sont: facilité d'utilisation et flexibilité (aucune classe, code autogénéré ou xml n'est requis), WSDL introspection et génération, conformité aux normes WS-I, compatibilité (y compris Java AXIS, .NET et Jboss WS). Il est inclus dans Web2Py pour activer les solutions Full-stack (en complément d'autres protocoles pris en charge tels que XML_RPC, JSON, AMF-RPC, etc.).).

si quelqu'un apprend le savon ou veut l'étudier, je pense que c'est un bon choix de commencer.

4
répondu reingart 2010-08-07 01:00:14

je crois que soaplib a déprécié son client SOAP ("expéditeur") en faveur de suds. À ce stade soaplib se concentre sur être un web framework agnostic soap server ("récepteur"). Actuellement soaplib est en cours de développement et est généralement discuté dans la liste de diffusion de Python SOAP:

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

2
répondu bradallen137 2010-08-31 16:18:43

comme j'ai suggéré ici je vous recommande de rouler le vôtre. En fait, ce n'est pas si difficile et je pense que c'est la raison pour laquelle il n'y a pas de meilleures bibliothèques de savon Python là-bas.

1
répondu Greg 2017-05-23 12:34:59

, c'est pas mal. J'ai essayé SOAPpy mais je ne l'ai pas fait fonctionner de la façon dont j'avais besoin tandis que suds a travaillé assez tout de suite.

1
répondu Pratik Patel 2011-03-24 02:31:46

Dans mon conclusion nous avons ceci:

Savon côté client:

utiliser seulement Suds-jurko (mise à jour en 2016) le mmuuu est bien tenu et mis à jour.

mise à jour 06/2017: la bibliothèque suds-jurko n'est pas mise à jour et apparemment abandonnée ,

j'ai testé bibliothèque zeep mais j'ai des limites autour des tokens, maintenant juste soutenir UsernameToken, je rapporte un bug pour créer timestamp jeton et l'auteur mettre à jour le code pour le corriger.

Zeep commencer à bien et a une bonne documentation , donc, j'ai récemment migré mon code de la mousse de zeep et fonctionne très bien.

Savon côté serveur:

nous avons TGWS, soaplib (pysimplesoap non testé) IMHO utilisation et aide soaplib doit être le choix.

meilleures salutations,

1
répondu Cristian Salamea 2017-07-20 14:51:50

pourrait-il aider: http://users.skynet.be/pascalbotte/rcx-ws-doc/python.htm#SOAPPY

Je l'ai trouvé en cherchant wsdl et python , avec l'être rationnel, que vous auriez besoin d'une description wsdl d'un serveur SOAP pour faire n'importe quels enveloppements de client utiles....

0
répondu Daren Thomas 2008-10-15 19:56:53

nous avions utilisé SOAPpy de Python Web Services , mais il semble que ZSI (même source) est en train de le remplacer.

0
répondu Kirk Strauser 2008-10-15 19:59:16

Im utilisant SOAPpy avec Python 2.5.3 dans un cadre de production.

j'ai dû éditer manuellement quelques fichiers dans SOAPpy (quelque chose à propos du code d'en-tête étant au mauvais endroit) mais à part cela, cela a fonctionné et continue de le faire de manière très fiable.

0
répondu carl 2010-03-18 03:29:07