zeep - Quais bibliotecas cliente SOAP existem para o Python e onde está a documentação para elas?




zeep client timeout (10)

Eu nunca usei o SOAP antes e sou meio que novo no Python. Estou fazendo isso para me familiarizar com as duas tecnologias. Eu instalei o SOAPlib e tentei ler a documentação do Client , mas não entendi muito bem. Existe mais alguma coisa em que eu possa pesquisar qual é a mais adequada para ser uma biblioteca SOAP Client para Python?

Edit: Apenas no caso de ajuda, estou usando o Python 2.6.


A espuma é muito boa. Eu tentei SOAPpy, mas não consegui fazê-lo funcionar da maneira que eu precisava enquanto suds trabalhou muito bem de imediato.


Acredito que o soaplib descontinuou seu cliente SOAP ('remetente') em favor da espuma. Neste ponto, o soaplib é focado em ser um servidor SOAP agnóstico do framework da web ('receptor'). Atualmente, o soaplib está em desenvolvimento ativo e é geralmente discutido na lista de discussão do SOAP em Python:

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


Como sugeri here , recomendo que você faça o seu próprio. Na verdade, não é tão difícil e eu suspeito que essa seja a razão pela qual não há melhores bibliotecas SOAP do Python por aí.


Estou usando o SOAPpy com Python 2.5.3 em uma configuração de produção.

Eu tive que editar manualmente um par de arquivos em SOAPpy (algo sobre o código de cabeçalho estar no lugar errado), mas diferente do que funcionou e continua a fazê-lo de forma muito fiável.



Lançamos uma nova biblioteca: pysimplesoap , que fornece suporte para cliente / servidor simples e funcional. Seus objetivos são: facilidade de uso e flexibilidade (sem classes, código autogerado ou xml é necessário), introspecção e geração de WSDL, conformidade com o padrão WS-I, compatibilidade (incluindo Java AXIS, .NET e Jboss WS). Ele está incluído no Web2Py para ativar soluções de pilha completa (complementando outros protocolos suportados, como XML_RPC, JSON, AMF-RPC, etc.).

Se alguém estiver aprendendo SOAP ou quiser investigar, acho que é uma boa escolha começar.


O SUDS é fácil de usar, mas não é garantido que seja reentrante. Se você estiver mantendo o objeto WSDL Client () em um aplicativo encadeado para melhor desempenho, há algum risco envolvido. A solução para esse risco, o método clone (), lança o bug irrecuperável do Python 5508, que parece imprimir, mas não realmente lançar uma exceção. Pode ser confuso, mas funciona. Ainda é de longe o melhor cliente SOAP do Python.


SUDS é o caminho a percorrer, sem dúvida.


Usamos o SOAPpy do Python Web Services , mas parece que o ZSI (mesma fonte) está substituindo-o.


Atualização (2016):

Se você precisa apenas de cliente SOAP, existe uma biblioteca bem mantida chamada zeep . Ele suporta o Python 2 e 3 :)

Atualizar:

Além do que é mencionado acima, vou me referir à página WebServices do Python , que está sempre atualizada com todos os módulos ativamente mantidos e recomendados para o SOAP e todos os outros tipos de serviço da web.

Infelizmente, no momento, não acho que exista uma "melhor" biblioteca SOAP do Python. Cada um dos principais disponíveis tem suas próprias vantagens e desvantagens.

Bibliotecas mais antigas:

  • SOAPy : Foi o "melhor", mas não mais mantido. Não funciona no Python 2.5+

  • ZSI : Muito doloroso de usar e o desenvolvimento é lento. Tem um módulo chamado "SOAPpy", que é diferente do SOAPy (acima).

Bibliotecas "mais recentes":

  • SUDS : Very Pythonic, e fácil de criar clientes SOAP que consomem WSDL. Criar servidores SOAP é um pouco mais difícil. (Este pacote não funciona com o Python3. Para Python3, consulte SUDS-py3)

  • SUDS-py3 : A versão Python3 do SUDS

  • spyne : Criar servidores é fácil, criando clientes um pouco mais desafiadores. A documentação é um pouco deficiente.

  • ladon : Criar servidores é muito parecido com o soaplib (usando um decorador). Ladon expõe mais interfaces do que o SOAP ao mesmo tempo sem o código de usuário extra necessário.

  • pysimplesoap : muito leve, mas útil tanto para o cliente quanto para o servidor - inclui uma integração de servidor web2py que vem com o web2py.

  • SOAPpy : Distinta do SOAPpy abandonado que está hospedado no link ZSI acima, esta versão foi mantida até 2011, agora ela também parece estar abandonada.
  • soaplib : Fácil de usar biblioteca python para escrever e chamar serviços web de sabão. Webservices escritos com o soaplib são simples, leves, funcionam bem com outras implementações SOAP e podem ser implementados como aplicativos WSGI.
  • osa : Um rápido / fino fácil de usar biblioteca cliente python SOAP.

Do acima, eu usei SUDS apenas pessoalmente, e gostei muito.







soap-client