¿Qué bibliotecas de cliente SOAP existen para Python y dónde está la documentación para ellas? [cerrado]
Nunca antes había usado SOAP y soy nuevo en Python. Estoy haciendo esto para familiarizarme con ambas tecnologías. Instalé SOAPlib e intenté leer la documentación del cliente , pero no la entiendo muy bien. ¿Hay algo más que pueda investigar que sea más adecuado para ser una biblioteca de cliente SOAP para Python?
Editar: en caso de que ayude, estoy usando Python 2.6.
Actualización (2016):
Si solo necesita un cliente SOAP, existe una biblioteca bien mantenida llamada zeep . Es compatible con Python 2 y 3 :)
Actualizar:
Además de lo mencionado anteriormente, me referiré a la página de servicios web de Python , que siempre está actualizada con todos los módulos recomendados y mantenidos activamente para SOAP y todos los demás tipos de servicios web.
Desafortunadamente, por el momento, no creo que exista una "mejor" biblioteca SOAP de Python. Cada uno de los principales disponibles tiene sus pros y sus contras.
Bibliotecas más antiguas:
SOAPy : Era el "mejor", pero ya no se mantiene. No funciona en Python 2.5+
ZSI : Muy doloroso de usar y el desarrollo es lento. Tiene un módulo llamado "SOAPpy", que es diferente a SOAPy (arriba).
Bibliotecas "más nuevas":
SUDS : Clientes SOAP muy pitónicos y fáciles de crear que consumen WSDL. Crear servidores SOAP es un poco más difícil. (Este paquete no funciona con Python3. Para Python3, consulte SUDS-py3)
SUDS-py3 : la versión Python3 de SUDS
spyne : Crear servidores es fácil, crear clientes es un poco más desafiante. Falta algo de documentación.
ladon : Crear servidores es muy parecido a Soaplib (usando un decorador). Ladon expone más interfaces que SOAP al mismo tiempo sin necesidad de código de usuario adicional.
pysimplesoap : muy liviano pero útil tanto para el cliente como para el servidor; incluye una integración del servidor web2py que se entrega con web2py.
- SOAPpy : A diferencia del SOAPpy abandonado que está alojado en el enlace ZSI anterior, esta versión en realidad se mantuvo hasta 2011, ahora parece estar abandonada también.
- SOAPLIB : Biblioteca Python fácil de usar para escribir y llamar a servicios web SOAP. Los servicios web escritos con SOAPlib son simples, livianos, funcionan bien con otras implementaciones SOAP y pueden implementarse como aplicaciones WSGI.
- osa : una biblioteca cliente SOAP Python rápida/delgada y fácil de usar.
De los anteriores, personalmente solo he usado SUDS y me gustó mucho.
Seguí los consejos de otras respuestas a esta pregunta y probé SUDS . Después de usarlo "con ira", debo estar de acuerdo: ¡SUDS es muy bueno! ¡Muy recomendable!
Tuve problemas para llamar a servicios web basados en HTTPS desde detrás de un proxy. Al momento de escribir este artículo, esto afecta a todos los clientes de servicios web Python que usan urllib2
, por lo que documentaré la solución aquí.
El urllib2
módulo que se envía con Python 2.6.2 y versiones anteriores no emitirá un mensaje CONNECT
al proxy para sesiones de proxy HTTPS sobre HTTP. Esto da como resultado un tiempo de espera prolongado o, si tiene suerte, un error similar al siguiente:
abort: error: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol
Este fue el problema 1424152 en el rastreador de errores de Python. Hay parches adjuntos al informe de error que solucionarán este problema en Python 2.x y Python 3.x. El problema ya está solucionado .