我需要将现有的WebService重写为Django应用程序的一部分,目标是将Django应用程序集成到可以调用此特定WebService的遗留系统中。
所以我确实有一个非常复杂的WSDL文件,它有几个方法和一个庞大的数据结构。有没有办法使用该WSDL文件为Django中的应用程序生成存根,或者我是否必须自己创建所有必要的数据结构和方法签名?
答案 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