当前位置:首页 > 深入 Python > SOAP Web 服务 > WSDL 简介 | << >> | ||||
深入 Python从 Python 新手到专家 |
SOAPProxy 类代理本地方法调用,并将其透明地转换为对远程 SOAP 方法的调用。正如您所见,这是一项艰巨的任务,而 SOAPProxy 可以快速且透明地完成这项任务。但它不提供任何方法内省的手段。
请考虑以下情况:前两节展示了一个调用简单远程 SOAP 方法的示例,该方法具有一个参数和一个返回值,两者都是简单数据类型。这需要知道并跟踪服务 URL、服务命名空间、函数名称、参数数量以及每个参数的数据类型。如果其中任何一项缺失或错误,整个过程就会失败。
这并不奇怪。如果我想调用一个本地函数,我需要知道它在哪个包或模块中(相当于服务 URL 和命名空间)。我需要知道正确的函数名称和正确的参数数量。Python 可以巧妙地处理没有显式类型的数据类型,但我仍然需要知道要传递多少个参数以及期望多少个返回值。
最大的区别在于内省。正如您在第 4 章中所见,Python 擅长于让您在运行时发现有关模块和函数的信息。您可以列出模块中可用的函数,并通过一些操作深入到各个函数声明和参数。
WSDL 允许您使用 SOAP Web 服务执行此操作。WSDL 代表“Web 服务描述语言”。尽管其设计足够灵活,可以描述多种类型的 Web 服务,但它最常用于描述 SOAP Web 服务。
WSDL 文件只是一个文件。更具体地说,它是一个 XML 文件。它通常位于您用来访问其描述的 SOAP Web 服务的同一台服务器上,尽管它没有什么特别之处。在本章的后面部分,我们将下载 Google API 的 WSDL 文件并在本地使用它。这并不意味着我们是在本地调用 Google;WSDL 文件仍然描述的是位于 Google 服务器上的远程函数。
WSDL 文件包含调用 SOAP Web 服务所需的所有内容的描述
换句话说,WSDL 文件会告诉您调用 SOAP Web 服务所需了解的所有信息。
<< 调试 SOAP Web 服务 |
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | |
使用 WSDL 内省 SOAP Web 服务 >> |