从现有的WSDL

时间:2016-08-02 19:36:27

标签: python django web-services wsdl

我需要将现有的WebService重写为Django应用程序的一部分,目标是将Django应用程序集成到可以调用此特定WebService的遗留系统中。

所以我确实有一个非常复杂的WSDL文件,它有几个方法和一个庞大的数据结构。有没有办法使用该WSDL文件为Django中的应用程序生成存根,或者我是否必须自己创建所有必要的数据结构和方法签名?

1 个答案:

答案 0 :(得分:3)

查看Zeep

Zeep检查WSDL文档并生成相应的代码以使用文档中的服务和类型。

<强> views.py

from django.http import HttpResponse
from django.views import View
from zeep import Client

class MyConvertKilometer2MilesView(View):
    def get(self, request):
        # <view logic>
        client = Client('http://www.webservicex.net/ConvertSpeed.asmx?WSDL')
        result = client.service.ConvertSpeed(
            100, 'kilometersPerhour', 'milesPerhour')
        return HttpResponse('result')

如果您不确定返回的速度有多快(由于SOAP的性质),请使用

使用Zeep进行命令行测试

如果您想在中间测试一些东西,可以使用Zeep的命令行界面来轻松实现。

python -mzeep http://www.soapclient.com/xml/soapresponder.wsdl