Quelles bibliothèques clientes SOAP existent pour Python et où se trouve la documentation pour celles-ci? [fermé]

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

  •  03-07-2019
  •  | 
  •  

Question

Je n'ai jamais utilisé SOAP et je suis un peu novice en Python. Je fais cela pour me familiariser avec les deux technologies. J'ai installé SOAPlib et j'ai essayé de lire leur Client , mais je ne la comprends pas très bien. Y a-t-il autre chose que je puisse trouver qui convienne mieux comme bibliothèque SOAP pour Python?

Éditer: au cas où cela aiderait, j'utilise Python 2.6.

Était-ce utile?

La solution

Mise à jour (2016):

Si vous n'avez besoin que d'un client SOAP, il existe 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 ferai référence à la page Python WebServices . toujours à jour avec tous les modules mis à jour activement et recommandés pour SOAP et tous les autres types de services Web.

Malheureusement, pour le moment, je ne pense pas qu'il existe un "meilleur" Bibliothèque SOAP Python. Chacun des produits traditionnels disponibles a ses avantages et ses inconvénients.

Anciennes bibliothèques:

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

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

" Newer " bibliothèques:

  • SUDS : très Pythonique et facile à créer des clients SOAP utilisant 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 : la création de serveurs est simple, la création de clients un peu plus difficile. La documentation manque quelque peu.

  • ladon : la création de serveurs est très semblable à soaplib (avec un décorateur). Ladon expose plus d'interfaces que SOAP en même temps, sans code utilisateur supplémentaire requis.

  • pysimplesoap : très léger mais utile à la fois pour le client et le serveur - inclut un Intégration de serveur web2py fournie avec web2py.

  • SOAPpy : distinct de la SOAPpy abandonnée hébergée sur le lien ZSI ci-dessus, cette version a été conservée. jusqu'en 2011, maintenant il semble être abandonné aussi.
  • soaplib : Bibliothèque python facile à utiliser pour écrire et appeler des services Web soap. 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 cliente SOAP python rapide et simple à utiliser.

De ce qui précède, je n’ai utilisé que SUDS personnellement et j’ai beaucoup aimé.

Autres conseils

J’ai suivi les conseils des autres réponses à cette question et j’ai essayé SUDS . Après l'avoir utilisé " dans la colère " Je dois accepter: SUDS est très gentil! Fortement recommandé!

J'ai eu des difficultés à appeler des services Web basés sur HTTPS derrière un proxy. Au moment de la rédaction de cet article, tous les clients du service Web Python utilisant urllib2 sont concernés, nous allons donc documenter la solution ici.

Le module urllib2 fourni avec python 2.6.2 et versions ultérieures ne génère pas de CONNECT vers le proxy pour les sessions de proxy HTTPS sur HTTP. Cela entraîne un long délai d'attente ou, si vous êtes chanceux, une erreur ressemblant à ceci:

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

C’était numéro 1424152 sur le gestionnaire de bogues Python. Des rapports de bogues attachés au rapport de bogue permettront de résoudre ce problème dans Python 2.x et Python 3.x. Le problème est déjà résolu .

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

Utilisé leur TestSuite comme documentation.

SUDS est la voie à suivre, pas de doute.

Juste un avertissement FYI pour les personnes regardant SUDS, jusqu'à ce que ce ticket soit résolu, SUDS ne prend pas en charge le "choix". balise dans WSDL:

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

voir: balise suds and choice

SUDS est facile à utiliser, mais sa réintroduction n’est pas garantie. Si vous conservez l'objet WSDL Client () dans une application à threads pour améliorer les performances, des risques sont associés. La solution à ce risque, la méthode clone (), jette le bogue irrécupérable Python 5508, qui semble s’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.

Nous avons publié une nouvelle bibliothèque: PySimpleSOAP , qui prend en charge les clients simples et fonctionnels. /serveur. Ses objectifs sont les suivants: facilité d'utilisation et flexibilité (pas de classes, code généré automatiquement ou XML), introspection et génération WSDL, conformité au standard WS-I, compatibilité (y compris Java AXIS, .NET et Jboss WS). Il est inclus dans Web2Py pour permettre des solutions complètes (en complément d'autres protocoles pris en charge tels que XML_RPC, JSON, AMF-RPC, etc.).

Si quelqu'un étudie SOAP ou veut en savoir plus, je pense que c'est un bon choix.

Je pense que soaplib a déconseillé d'utiliser son client SOAP ('expéditeur') au profit de la mousse. À ce stade, soaplib se concentre sur le fait qu’il s’agisse d’un serveur SOAP («récepteur») indépendant de la structure Web. Soaplib est actuellement en cours de développement et est généralement discuté dans la liste de diffusion Python SOAP:

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

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’existe pas de meilleures bibliothèques SOAP Python.

mousser est très bon. J'ai essayé SOAPpy mais je ne l'ai pas fait fonctionner comme je l'avais prévu, alors que la mousse a fonctionné assez rapidement.

En ma conclusion, nous avons ceci:

Côté client Soap:

utilisez seulement Suds-jurko mise à jour 2016) La mousse est bien maintenue et mise à jour.

MISE À JOUR 06/2017: La bibliothèque suds-jurko n'est pas mise à jour et apparemment abandonné ,

J'ai testé la bibliothèque zeep , mais des limitations ont été imposées concernant les jetons. signalez un bogue pour créer un jeton d'horodatage et l'auteur met à jour le code pour le corriger.

Zeep commence bien et a une bonne documentation , donc j’ai récemment a migré mon code de mous à zeep et fonctionne bien.

Côté serveur de savon:

Nous avons TGWS, soaplib (pysimplesoap non testé), l'utilisation à mon humble avis et aide soaplib doit être le choix.

Cordialement,

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

Je l'ai trouvé en recherchant wsdl et python , avec la raison d'être, vous auriez besoin d'une description wsdl d'un serveur SOAP pour créer des wrappers client utiles. ...

Nous avions utilisé SOAPpy à partir des services Web Python , mais il semble que ZSI (même source) soit le remplacer.

J'utilise SOAPpy avec Python 2.5.3 dans un contexte de production.

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top