2011-06-21 112 views
3

我在某個項目中使用the suds library作爲SOAP客戶端。 我想知道是否有一種方法根據WSDL文件生成Python代碼。從WSDL文件中爲自動完成生成顯式代碼?

例如,請考慮下面的線是從WSDL文件:

<operation name="GetLastTradePrice"> 

然後,我想在一些.py文件,以獲得自動生成的功能

def GetLastTradePrice... 

的目的那就是爲了能夠知道我擁有客戶時可能的功能和特性。這意味着,如果我會寫:

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

然後鍵入folloewing

client.service. 

我會得到自動完成GetLastTradePrice的選項之後。

+0

出於興趣,Python REPL autocompletion框架足夠靈活,可以根據對象的狀態動態更改自動完成選項嗎?在交互式編程環境中(如REPL),這將允許輸入「client.service」。動態調出在先前步驟中初始化客戶端時已解析的Web服務方法列表。 –

回答

0

Ye olde ZSI庫可以根據WSDL定義生成Python代碼,但與泡沫相比,使用它非常痛苦,並且需要另一個稱爲PyXML的舊模塊。我會堅持泡沫,自動完成是不值得的。

0

python有很多SOAP服務器實現,其中一些比其他實現更有用,在PyPI上搜索與SOAP相關的包,或者查看python.org上有關web services的wiki頁面。基本上有兩種類型的SOAP服務器的Python:

  1. 服務器,可以生成WSDL文件(如ZSI),可以從服務類中的方法直接產生WSDL
  2. 服務器服務器存根(如soaplib,拉冬)