从WSDL文件生成明确的代码以实现自动完成功能?

3 投票
2 回答
2939 浏览
提问于 2025-04-16 20:02

我在某个项目中使用suds库作为SOAP客户端。想知道有没有办法根据WSDL文件生成Python代码。

比如,假设下面这行是来自WSDL文件的内容:

<operation name="GetLastTradePrice">

然后,我想在某个.py文件中得到自动生成的函数

def GetLastTradePrice...

这样做的目的是为了让我知道在使用客户端时有哪些可用的函数和属性。这意味着,如果我写:

from suds.client import Client
client = Client(SOME_URL)

那么,在我输入以下内容后

client.service.

我就能看到自动补全的选项GetLastTradePrice

2 个回答

0

在Python中,有很多SOAP服务器的实现,有些比其他的更好用。你可以在PyPI上搜索与SOAP相关的包,或者看看python.org上关于网络服务的维基页面。基本上,Python的SOAP服务器可以分为两种类型:

  1. 可以从WSDL文件生成服务器代码的服务器(比如ZSI)
  2. 可以直接从服务类的方法生成WSDL的服务器(比如soaplib和ladon)
0

老旧的 ZSI 库可以根据 WSDL 定义生成 Python 代码,但跟 suds 比起来,使用起来相当麻烦,而且还需要一个更老的模块叫 PyXML。我建议还是用 suds,自动补全的功能不值得为此去折腾。

撰写回答