| 導航:起始頁 > Dive Into Python > SOAP Web 服務 > WSDL 介紹 | << >> | ||||
深入 Python :Dive Into Python 中文版Python 從新手到專家 [Dip_5.4b_CPyUG_Release] |
|||||
SOAPProxy 類本地方法調用并透明地轉向到遠程 SOAP 方法。正如你所看到的,這是很多的工作,SOAPProxy 快速和透明地完成他們。它沒有做到的是提供方法自省的手段。
考慮一下:前面兩部分所展現的調用只有一個參數和返回的簡單遠程 SOAP 方法。服務 URL 和一系列參數及它們的數據類型需要被知道并跟蹤。任何的缺失或錯誤都會導致整體的失敗。
這并沒有什么可驚訝的。如果我要調用一個本地函數,我需要知道函數所在的包和模塊名 (與之對應的則是服務 URL 和命名空間)。我還需要知道正確的函數名以及其函數個數。Python 精妙地不需明示類型,但我還是需要知道有多少個參數需要傳遞,多少個值將被返回。
最大的區別就在于內省。就像你在 第 4 章 看到的那樣,Python 擅長于讓你實時地去探索模塊和函數的情況。你可以對一個模塊中的所有函數進行列表,并不費吹灰之力地明了函數的聲明和參數情況。
WSDL 允許你對 SOAP 網絡服務做相同的事情。WSDL 是 “網絡服務描述語言 (Web Services Description Language)”的縮寫。它盡管是為自如地表述多種類型的網絡服務而設定,卻也經常用于描述 SOAP 網絡服務。
一個 WSDL 文件不過就是一個文件。更具體地講,是一個 XML 文件。通常存儲于你所訪問的 SOAP 網絡服務這個被描述對象所在的服務器上,并沒有什么特殊之處。在本章稍后的位置,我們將下載 Google API 的 WSDL 文件并在本地使用它。這并不意味著本地調用 Google,這個 WSDL 文件所描述的仍舊是 Google 服務器上的遠程函數。
在 WSDL 文件中描述了調用相應的 SOAP 網絡服務的一切:
換言之,一個 WSDL 文件告訴你調用 SOAP 所需要知道的一切。
<< SOAP 網絡服務查錯 |
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | |
以 WSDL 進行 SOAP 內省 >> |