Форум сайта python.su
Подскажите как при помощи Zeep библиотеки составить SOAP запрос приведенный ниже. Т.е. в данный момент я могу его сформировать как текст и при помощи request запостить на сервер.
Но все таки не просто так существуют SOAP клиенты, хочется их использовать. Выбрал Zeep , но примеры его использования примитивные, типа запросить soap метод с парой параметров.
А в моем случае тело запроса достаточно сложное и никак не пойму как его сформировать (не через raw текст).
Буду благодарен за примеры, как создавать блоки, аттрибуты в хедере, теле запроса.
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header>
<UserAuth>
<userid>12345</userid>
<password>qwerty</password>
</UserAuth>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<add_labels>
<partnerorderid>111</partnerorderid>
<kepoluserid>222</kepoluserid>
<paymentpin>333</paymentpin>
<labels>
<orderedLabel>
<partnerorderartid>123</partnerorderartid>
<productcode>CC</productcode>
<parcelweight>1</parcelweight>
<sendername>UAB Sirius</sendername>
<sendermobile>003700000001</sendermobile>
<senderaddresscountry>LT</senderaddresscountry>
<receivername>Vardenis Pavardenis</receivername>
<receivermobile>003700000002</receivermobile>
<targetmachineidentification>0119</targetmachineidentification>
<boxsize>XSmall</boxsize>
<printtype>terminal</printtype>
</orderedLabel>
</labels>
</add_labels>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Офлайн
Сам себе отвечаю:
request_data = { 'partnerorderid': 123, 'kepoluserid': 'aaa', 'paymentpin': 'bbb', 'labels': [{ 'boxsize': 'XSmall', 'printtype': 'terminal', }] } client.service.add_labels(_soapheaders={'UserAuth': {'userid': '123', 'password': 'qwerty'}, **request_data)
Офлайн
Извините за оффтопик, но очень яркий пример. С самого написания топика с интересом за ним наблюдал, задаваясь себе вопросом “интересно много сейчас людей которые пользуются SOAP?”.
Результат характерный, так никто и не ответил…
Как выглядит решение ТС? Оно выглядит как прямой перевод xml в json!
Таким образом похоже SOAP клиенты существуют не зря? Они заплатки которые борются с переусложненным стандартом SOAP, и пакует безумно многословный xml приводя это в некое подобие json. :).
Так стоит ли для новых проектов сейчас использовать SOAP/XML? Я сам много раз согласовывал протоколы обмена, где разработчики предлагали xml. Беседы по душам с вопросами а это зачем, а тут что приводили к переходу на json и сокращению объема сообщений в 2-30 раз. Да да иногда в 30! Ну это конечно на совести разработчиков а не формата.
Офлайн
VadimKДа этот модуль какой-то забагованный вечно. Сколько раз вопросы тут были уже, так каждый раз какие-то глюки в самом модуле.
Подскажите как при помощи Zeep библиотеки составить SOAP запрос
Офлайн
doza_andУ многих старых крупных контор в качестве API именно SOAP. И в ближайшие года никто там ничего менять не будет. Особенно если это какие нибудь почтовые службы и банки.
Так стоит ли для новых проектов сейчас использовать SOAP/XML?
Офлайн