existem Que bibliotecas de cliente SOAP para Python, e onde está a documentação para eles? [fechadas]
-
03-07-2019 - |
Pergunta
Eu nunca usei sabão antes e eu sou uma espécie de novo para Python. Estou fazendo isso para me familiarizar com ambas as tecnologias. Eu instalei SOAPlib e eu tentei ler a sua documentação do cliente , mas eu não entendo muito bem. É outra coisa lá algo que eu possa olhar para o que é mais adequado para ser uma biblioteca cliente SOAP para Python?
Edit:. Apenas no caso de ajuda, estou usando o Python 2.6
Solução
Update (2016):
biblioteca Se você só precisa de cliente SOAP, não está bem conservado chamado zeep . Ele suporta tanto Python 2 e 3:)
Atualização:
Adicionalmente ao que está mencionado acima, vou me referir a Python WebServices página que é sempre up-to-date com todos os módulos mantido ativamente e recomendados para tipos SABÃO e todos os outros webservice.
Infelizmente, no momento, eu não acho que há uma "melhor" biblioteca Python SOAP. Cada um dos mais tradicionais disponíveis tem suas próprias vantagens e desvantagens.
bibliotecas mais antigas:
-
ensaboada : era o "melhor", mas não é mantida. Não funciona em Python 2.5 +
-
ZSI : Muito doloroso para usar, e desenvolvimento é lento. Tem um módulo chamado "SOAPpy", que é diferente do que com sabão (acima).
bibliotecas "mais recente":
-
SUDS : Muito Pythonic, e fácil de criar clientes SOAP-consuming WSDL. Criando servidores SOAP é um pouco mais difícil. (Este pacote não funciona com Python3. Para Python3 ver SUDS-PY3)
-
SUDS-PY3 : Versão A Python3 de SUDS
-
spyne : Criando servidores é fácil, criação de clientes um pouco mais desafiador. Documentação é um pouco carente.
-
ladon : Criando servidores é muito parecido em soaplib (usando um decorador). Ladon expõe mais interfaces do que o sabão, ao mesmo tempo, sem o código do usuário extra necessário.
-
pysimplesoap : muito leve, mas útil para o cliente e servidor - inclui um integração do servidor web2py que vem com o web2py.
- SOAPpy : Diferentemente do SOAPpy abandonada que está hospedado no link ZSI acima, esta versão foi realmente mantida até 2011, agora parece ser abandonada também.
- soaplib : fácil de usar biblioteca python para escrever e chamando serviços web de sabão. Webservices escritos com soaplib são simples, leve, trabalhar bem com outras implementações de SOAP, e pode ser implantado como aplicações WSGI.
- osa :. Um rápido / magro fácil de usar sabão biblioteca cliente Python
Do acima, eu só SUDS usado pessoalmente, e eu gostei muito.
Outras dicas
Eu segui o conselho de outras respostas a esta pergunta e deu SUDS uma tentativa. Após usá-lo "com raiva" Devo concordar: SUDS é muito bom! Altamente recomendado!
I fez para serviços web chamado problemas baseados em HTTPS por trás de um proxy. No momento da redação deste artigo, isso afeta todas clientes de serviços web Python que o uso urllib2
, então eu vou documentar a solução aqui.
O módulo urllib2
transporte com python 2.6.2 e abaixo não irá emitir um CONNECT
para o proxy para sessões HTTPS-over-http-proxy. Isso resulta em um longo tempo de espera, ou se você tiver sorte, um erro que se parece com:
abort: error: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol
Este foi issue1424152 sobre o rastreador de bug do Python. Há manchas anexados ao relatório de bug que irá corrigir isso em Python 2.x e Python 3.x. A questão já está fixado .
Eu tive uma boa experiência com SUDS https://fedorahosted.org/suds
Usado sua TestSuite como documentação.
SUDS é o caminho a percorrer, não há dúvida sobre isso.
Apenas um FYI aviso para as pessoas olhando para SUDS, até que o bilhete for resolvido, SUDS não suporta a tag "escolha" em WSDL:
https://fedorahosted.org/suds/ticket/342
ver: espuma e escolha tag
SUDS é fácil de usar, mas não é garantido para ser re-entrantes. Se você está mantendo o objeto WSDL Cliente () em torno de um aplicativo de rosca para um melhor desempenho, há algum risco envolvido. A solução para este risco, o método clone (), lança o irrecuperável Python 5508 bug, que parece imprimir mas não realmente lançar uma exceção. Pode ser confuso, mas funciona. Ele ainda é, de longe, o melhor cliente Python SOAP.
Nós lançamos uma nova biblioteca: PySimpleSOAP , que fornece suporte para simples e funcional cliente /servidor. Ele objetivos são: a facilidade de uso e flexibilidade (sem aulas, é necessário código gerado automaticamente ou xml), a introspecção WSDL e geração, WS-I conformidade com o padrão, a compatibilidade (incluindo Java AXIS, .NET e JBoss WS). É incluído em web2py para permitir soluções de pilha completa (complementando outros protocolos suportados, tais como XML_RPC, JSON, AMF-RPC, etc.).
Se alguém está aprendendo SOAP ou querer investigar isso, eu acho que é uma boa escolha para começar.
Acredito que soaplib tem depreciado seu cliente SOAP ( 'emissor') em favor de espuma. Neste ponto soaplib está focada em ser um servidor SOAP agnóstico framework web ( 'receptor'). Atualmente soaplib está em desenvolvimento ativo e normalmente é discutido na lista de discussão Python SABÃO:
Como sugeri aqui eu recomendo que você rolar o seu próprio. Na verdade não é tão difícil e eu suspeito que é a razão não são melhores bibliotecas SABÃO Python lá fora.
espuma é muito bom. Tentei SOAPpy mas não fazê-lo funcionar exatamente da maneira que eu precisava enquanto espuma trabalhou bastante imediatamente.
Em minha conclusão temos o seguinte:
lado do cliente Soap:
uso única Suds-Jurko ( atualizados 2016)
espuma é bem mantido e atualizado.
Atualização 06/2017: espuma-Jurko biblioteca não é atualizado e aparentemente abandonado ,
Eu testei zeep biblioteca, mas tem limitações em torno de tokens, por agora basta apoiar UsernameToken, i relatar um bug para criar timestamp atualização token e autor do código para corrigi-lo.
Zeep começar bom e tem boa documentação , então eu recentemente migrou meu código de espuma para zeep e funciona bem.
lado do servidor Soap:
Temos TGWS, soaplib (pysimplesoap não testado) uso IMHO e ajuda soaplib deve ser a escolha.
Com os melhores cumprimentos,
Será que esta ajuda: http: //users.skynet .be / pascalbotte / rcx-ws-doc / python.htm # SOAPpy
Eu achei procurando por wsdl
e python
, com o ser racional, que você precisaria de uma descrição WSDL de um servidor SOAP para fazer qualquer útil wrappers cliente ....
Nós tínhamos usado SOAPpy de Python Web Services , mas parece que ZSI (mesma fonte) é substituí-lo.
Im usando SOAPpy com Python 2.5.3 em um ambiente 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 ele trabalhou e continua a fazê-lo de forma muito confiável.