【发布时间】:2013-07-05 23:32:58
【问题描述】:
StackOverflow 上有很多关于 python SOAP 客户端的问题。但是,他们都是 3 岁以上。
问题是目前正在积极维护哪些 python SOAP 客户端库?
我找到的唯一一个是PySimpleSOAP。还有其他的吗?
【问题讨论】:
StackOverflow 上有很多关于 python SOAP 客户端的问题。但是,他们都是 3 岁以上。
问题是目前正在积极维护哪些 python SOAP 客户端库?
我找到的唯一一个是PySimpleSOAP。还有其他的吗?
【问题讨论】:
没有积极维护,真的……但是,如果仍然对 python SOAP 客户端解决方案感兴趣,我强烈建议尝试suds
【讨论】:
查看Python Wiki page on Web Services。您可以单击各个项目并查看它们上次更新的时间。例如,ZSI (Zolera Soap Infrastructure) 最后更新于 2013 年 5 月 2 日。
【讨论】:
TL;DR:
长答案:
我打算在 2016 年发布一个更新的请求,因为看起来上面的一些内容现在也已经消失了。
根据Python WebServices,有多个SOAP客户端:
ZSI(Zolera Soap Infrastructure)——积极维护的 Python Web 服务项目的一个版本; ZSI-2.0 于 2007-02-02 发布,提供客户端和服务器 SOAP 库。新添加的是在 python 类中正确使用复杂类型的 WSDL。
soaplib - Soaplib 是一个易于使用的 python 库,用于编写和调用soap web 服务。使用soaplib 编写的Web 服务简单、轻量、可与其他SOAP 实现很好地配合使用,并且可以部署为WSGI 应用程序。
suds - Suds 是一个轻量级 SOAP python 客户端,为 Web 服务提供服务代理。
pysimplesoap - PySimpeSoap 是一个简单而实用的客户端/服务器。它的目标是:易用性和灵活性(不需要类、自动生成的代码或 xml)、WSDL 内省和生成、WS-I 标准合规性、兼容性(包括 Java AXIS、.NET 和 Jboss WS)。它包含在 Web2Py 中以启用全栈解决方案(补充其他支持的协议,如 XML_RPC、JSON、AMF-RPC 等)。
osa - osa 是一个快速/纤薄且易于使用的 SOAP python 客户端库。
Ladon Ladon 是一种创建 Web 服务的多协议方法。创建一项服务并将其公开给包括 SOAP 在内的多种服务协议。与大多数其他基于 Python 的 SOAP 服务实现不同,Ladon 为您的 Web 服务动态生成 WSDL 文件。这是可能的,因为每个 web 服务方法的参数类型都是通过 ladonize 装饰器定义的。此外值得一提的是,Ladon 提供了 python 3 支持。
zeep - Zeep 是基于 lxml 和请求的现代(2016 年)和高性能 SOAP 客户端。它与 Python 2 和 3 兼容。
截至撰写本文时(2016 年末),其中大多数似乎已经过时(仅支持 SOAP1.1),并且根据提交历史,自 2015 年甚至更早以来就没有维护过。这尤其适用于ZSI、osa 和suds。
唯一的例外似乎是 zeep,它在 2016 年底得到积极维护,提供 SOAP1.2 支持(以及所有 Python 版本) - 至少在我的情况下,从那一刻起就完美地开箱即用我向它扔了一些 WSDL。
更新:虽然我不打算返回并经常编辑此页面(我会邀请 zeep 的作者这样做),但我想补充一点,在我上次更新 2 年后 zeep 仍然非常积极地维护,最新的提交是 2018 年 12 月。它支持 Python 到 3.7,目前是 3.2.0 版(离开了 0.x很久以前的预发布版本控制)。在我不得不使用 XML-SOAP 而不是 REST 的极少数情况下,它仍然是我的主要库。
【讨论】: