有 Zolera SOAP 基础设施 (ZSI) 的工作示例吗?
我查看了示例:
- http://pywebsvcs.svn.sourceforge.net/viewvc/pywebsvcs/trunk /wstools/
- http://pywebsvcs.sourceforge.net/cookbook.pdf
并用谷歌搜索,但找不到一个可用的示例。
i have looked at examples :
- http://pywebsvcs.svn.sourceforge.net/viewvc/pywebsvcs/trunk/wstools/
- http://pywebsvcs.sourceforge.net/cookbook.pdf
and googled, but could not find a single usable example.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
参考:(感谢Doug Hellmann)构建肥皂服务
Zolera Soap Infrastucture (ZSI) 是 pywebsvcs 项目的一部分。它提供了用于使用 SOAP 的完整服务器和客户端库。要使用它,开发人员需要编写 WSDL 文件(手动或使用 WSDL 编辑器),然后为客户端生成 Python 源代码并为服务器生成存根。 WSDL 文件中定义的数据结构将转换为可在客户端和服务器代码中使用的 Python 类。
我们实现了一个简单的回显服务,无论从客户端获得什么输入,它都会返回作为输出。清单 1 包含该服务的 ZSI 版本的手工制作的 WSDL 输入。
清单 1
要从 WSDL 生成客户端和服务器代码,请将其输入 wsdl2py 程序(包含在 ZSI 中)。要添加对复杂类型的支持,请添加 -b 选项,但此简单示例不需要它。作为响应,wsdl2py 将生成三个文件:
清单 2
EchoServer_client.py 是为 SimpleEcho Web 服务构建客户端所需的代码。
清单 3
EchoServer_server.py 包含构建 SimpleEcho Web 服务服务器所需的代码。
清单 4
EchoServer_types.py 具有客户端和服务器代码使用的类型定义。
一旦生成,这些文件就不再需要编辑,因为只要 WSDL 输入发生更改,它们就会作为构建过程的一部分重新生成。随着更多类型和调用添加到服务定义中,文件中的代码也会增长。
服务器的实现位于导入生成代码的单独文件中。在示例中,实际服务位于清单 5 的第 18-25 行。@soapmethod 装饰器定义了调用的输入(EchoRequest)和输出(EchoResponse)。在示例中,soap_Echo() 的实现只是用请求值填充响应值,并返回请求和响应。从那里,ZSI 负责构建 SOAP 响应并将其发送回客户端。
清单 5
清单 6 包含如何使用 ZSI 客户端库从客户端访问服务器的示例。需要做的就是创建 EchoServer Web 服务的句柄、构建 EchoRequest、将其发送到 Web 服务并读取响应。
reference: (Thanks to Doug Hellmann ) building soap service
The Zolera Soap Infrastucture (ZSI), is a part of the pywebsvcs project. It provides complete server and client libraries for working with SOAP. To use it, a developer writes the WSDL file (by hand or using a WSDL editor), and then generates Python source for the client and stubs for the server. The data structures defined in the WSDL file are converted into Python classes that can be used in both client and server code.
we implemented a simple echo service that returns as output whatever it gets as input from the client. Listing 1 contains the hand-crafted WSDL inputs for the ZSI version of this service.
Listing 1
To generate the client and server code from the WSDL, feed it into the wsdl2py program (included with ZSI). To add support for complex types, add the -b option, but it isn’t required for this simple example. wsdl2py will, in response, produce three files:
Listing 2
EchoServer_client.py is the code needed to build a client for the SimpleEcho web service.
Listing 3
EchoServer_server.py contains code needed to build the SimpleEcho web service server.
Listing 4
EchoServer_types.py has type definitions used by both the client and server code.
Once generated, these files are not meant to be edited, because they will be regenerated as part of a build process whenever the WSDL input changes. The code in the files grows as more types and calls are added to the service definition.
The implementation of the server goes in a separate file that imports the generated code. In the example, the actual service is on lines 18–25 of Listing 5. The @soapmethod decorator defines the input (an EchoRequest) and the output (an EchoResponse) for the call. In the example, the implementation of soap_Echo() just fills in the response value with the request value, and returns both the request and the response. From there, ZSI takes care of building the SOAP response and sending it back to the client.
Listing 5
Listing 6 includes a sample of how to use the ZSI client libraries to access the servers from the client end. All that needs to be done is to create a handle to the EchoServer web service, build an EchoRequest, send it off to the web service, and read the response.