Je n'ai jamais utilisé SOAP auparavant et je suis un peu nouveau pour Python. Je fais cela pour me familiariser avec les deux technologies. J'ai installé SOAPlib et j'ai essayé de lire leur documentation client , mais je ne la comprends pas trop bien. Existe-t-il autre chose que je peux examiner qui soit plus adapté pour être une bibliothèque client SOAP pour Python?
Edit: Juste au cas où cela aiderait, j'utilise Python 2.6.
python
soap
soap-client
damon
la source
la source
Réponses:
Mise à jour (2016):
Si vous n'avez besoin que d'un client SOAP, il existe une bibliothèque bien entretenue appelée zeep . Il prend en charge Python 2 et 3 :)
Mettre à jour:
En plus de ce qui est mentionné ci-dessus, je ferai référence à la page Python WebServices qui est toujours à jour avec tous les modules activement maintenus et recommandés pour SOAP et tous les autres types de services Web.
Malheureusement, pour le moment, je ne pense pas qu'il existe une "meilleure" bibliothèque Python SOAP. Chacun des principaux courants disponibles a ses propres avantages et inconvénients.
Bibliothèques plus anciennes:
SOAPy : était le "meilleur", mais n'est plus maintenu. 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).
Bibliothèques "plus récentes":
SUDS : Très Pythonic, et facile à créer des clients SOAP consommant WSDL. La création de serveurs SOAP est un peu plus difficile. (Ce paquet ne fonctionne pas avec Python3. Pour Python3, voir SUDS-py3)
SUDS-py3 : la version Python3 de SUDS
spyne : Créer des serveurs est facile, créer des clients un peu plus difficile. La documentation fait quelque peu défaut.
ladon : La création de serveurs ressemble beaucoup à soaplib (en utilisant un décorateur). Ladon expose plus d'interfaces que SOAP en même temps 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 livrée avec web2py.
De ce qui précède, je n'ai utilisé que SUDS personnellement, et je l'ai beaucoup aimé.
la source
urllib2
problème Python connu . Voir ma réponse pour plus de détails.J'ai suivi les conseils d'autres réponses à cette question et j'ai essayé SUDS . Après l'avoir utilisé "en colère" je dois convenir: SUDS est très sympa! Hautement recommandé!
J'ai rencontré des problèmes pour appeler des services Web HTTPS derrière un proxy. Au moment d'écrire ces lignes, cela affecte tous les clients de service Web Python qui utilisent
urllib2
, donc je vais documenter la solution ici.Le
urllib2
module livré avec python 2.6.2 et inférieur n'émettra pasCONNECT
de proxy au proxy pour les sessions proxy HTTPS sur HTTP. Cela se traduit par un long délai d'attente, ou si vous êtes chanceux, une erreur qui ressemble à:C'était le problème 1424152 sur le suivi des bogues Python. Il existe des correctifs attachés au rapport de bogue qui corrigeront cela dans Python 2.x et Python 3.x. Le problème est déjà résolu .
la source
J'ai eu une bonne expérience avec SUDS https://fedorahosted.org/suds
Utilisé leur TestSuite comme documentation.
la source
pip install suds-jurko
SUDS est la voie à suivre, cela ne fait aucun doute.
la source
Juste un avertissement pour les personnes qui consultent SUDS, jusqu'à ce que ce ticket soit résolu, SUDS ne prend pas en charge la balise "choice" dans WSDL:
https://fedorahosted.org/suds/ticket/342
voir: mousse et étiquette de choix
la source
SUDS est facile à utiliser, mais il n'est pas garanti d'être rentrant. Si vous conservez l'objet WSDL Client () dans une application filetée pour de meilleures performances, il y a un certain risque. La solution à ce risque, la méthode clone (), lève le bogue Python 5508 irrécupérable, qui semble imprimer mais ne lève pas vraiment une exception. Peut être déroutant, mais cela fonctionne. C'est toujours de loin le meilleur client SOAP Python.
la source
Nous avons publié une nouvelle bibliothèque: PySimpleSOAP , qui prend en charge un client / serveur simple et fonctionnel. Ses objectifs sont: facilité d'utilisation et flexibilité (aucune classe, code généré automatiquement ou xml n'est requis), introspection et génération WSDL, conformité aux normes WS-I, compatibilité (y compris Java AXIS, .NET et Jboss WS). Il est inclus dans Web2Py pour permettre des solutions de pile complète (complétant d'autres protocoles pris en charge tels que XML_RPC, JSON, AMF-RPC, etc.).
Si quelqu'un apprend SOAP ou veut enquêter, je pense que c'est un bon choix pour commencer.
la source
Je crois que soaplib a déprécié son client SOAP («expéditeur») au profit de la mousse. À ce stade, soaplib se concentre sur le fait d'être un serveur SOAP agnostique de framework Web («récepteur»). Actuellement, soaplib est en cours de développement actif et est généralement discuté dans la liste de diffusion Python SOAP:
http://mail.python.org/mailman/listinfo/soap
la source
Dans ma conclusion, nous avons ceci:
Côté savon:
utiliser uniquement Suds-jurko (mis à jour en 2016) suds est bien entretenu et mis à jour.MISE À JOUR 06/2017: la bibliothèque suds-jurko n'est pas mise à jour et semble abandonnée ,
J'ai testé la bibliothèque zeep mais j'ai des limitations concernant les jetons, maintenant je supporte simplement UsernameToken, je signale un bug pour créer un jeton d'horodatage et l'auteur met à jour le code pour le corriger.
Zeep démarre bien et a une bonne documentation , j'ai donc récemment migré mon code de suds vers zeep et fonctionne très bien.
Côté serveur Soap:Nous avons TGWS, soaplib (pysimplesoap non testé) à mon humble avis et l'aide soaplib doit être le choix.Meilleures salutations,
la source
Comme je l'ai suggéré ici, je vous recommande de rouler le vôtre. En fait, ce n'est pas si difficile et je suppose que c'est la raison pour laquelle il n'y a pas de meilleures bibliothèques SOAP Python.
la source
la mousse est assez bonne. J'ai essayé SOAPpy mais je ne l'ai pas fait fonctionner de la manière dont j'avais besoin, alors que la mousse fonctionnait à peu près tout de suite.
la source
Cela pourrait-il aider: http://users.skynet.be/pascalbotte/rcx-ws-doc/python.htm#SOAPPY
Je l'ai trouvé en recherchant
wsdl
etpython
, avec la rationalité, que vous auriez besoin d'une description wsdl d'un serveur SOAP pour faire des wrappers clients utiles ....la source
Nous avions utilisé SOAPpy de Python Web Services , mais il semble que ZSI (même source) le remplace.
la source
J'utilise 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 au mauvais endroit) mais à part cela, cela a fonctionné et continue de le faire de manière très fiable.
la source