Я использую suds-py3, и я ищу для создания словарей или списков с информацией о сервисе soap в WSDL. Например, в документации suds-py3 мыльный клиент выглядит следующим образом:
from suds.client import Client
url=<wsdl_url>
client = Client(url)
И этот клиент показывает следующую информацию при вызове print:
print(client)
Suds - version: 1.3.3.1 build: IN 20180220
Service (WebServiceTestBeanService) tns="http://test.server.enterprise.rhq.org/"
Prefixes (1):
ns0 = "http://test.server.enterprise.rhq.org/"
Ports (1):
(Soap)
Methods:
addPerson(Person person, )
echo(xs:string arg0, )
getList(xs:string str, xs:int length, )
getPercentBodyFat(xs:string name, xs:int height, xs:int weight)
getPersonByName(Name name, )
hello()
testExceptions()
testListArg(xs:string[] list, )
testVoid()
updatePerson(AnotherPerson person, name name, )
Types (23):
Person
Name
Phone
AnotherPerson
Итак, что яхочу иметь возможность получить информацию об имени службы, существующих методах, если они простые или сложные, об их параметрах, например:
service='WebServiceTestBeanService'
Methods={
'addPerson': 'complex',
'echo': 'simple',
'getList': 'simple',
...}
Parameters={
'addPerson':[Person],
'echo': [arg0],
'getList':[str, lenght],
...}
Мне действительно не нужна функция, чтобы сделатьте же словари, которые я упоминал, очень помогли бы, если бы я мог получать информацию отдельно. Как составить список методов можно с помощью следующего кода:
method_list = []
for method in client.wsdl.services[0].ports[0].methods:
method_list.append(method)
print(method_list)
addPerson, echo, getList, ...
Или название сервиса:
service_name = client.wsdl.services[0].name
print(service_name)
WebServiceTestBeanService