Я довольно новичок в python и совершенно новый в веб-сервисах.Я недавно начал работать над проектом, который мне очень нравится, и который стал прекрасной возможностью для обучения.Однако я очень застрял после нескольких недель исследований и мог бы помочь.
Я пытаюсь создать собственный WSDL-интерфейс, который работает аналогично SOAPUI.Моя программа проанализирует любой WSDL-файл рабочего дня для получения необходимой информации, вернет образец шаблона запроса , позволит пользователю отредактировать этот шаблон и, наконец, отправит xml на сервер Workday.
Прямо сейчас моя программа позволяет пользователю отправлять запросы Get и Put с существующими шаблонами xml.Что я не понимаю, так это то, как шаблоны запросов / ответов генерируются из WSDL.Я не заинтересован в инструментах, я хочу понять, как они это делают, чтобы я мог сделать свои собственные.
ПРИМЕР
Связанный выше «Файл WSDL рабочего дня» называется «Управление ресурсами».Я бы скачал этот WSDL с сервера Workday, чтобы получить доступ к связанным операциям.Одна такая операция называется «Get_Purchase_Item_Request».Затем я сгенерирую пример XML-запроса из этого WSDL и получу в результате что-то вроде следующего:
<bsvc:Get_Purchase_Items_Request xmlns:bsvc="urn:com.workday/bsvc" bsvc:version="string">
<!--You have a CHOICE of the next 2 items at this level-->
<!-- Optional: -->
<bsvc:Request_References>
<!-- 1 or more repetitions: -->
<bsvc:Purchase_Item_Reference bsvc:Descriptor="string">
<!-- Zero or more repetitions: -->
<bsvc:ID bsvc:type="string">string</bsvc:ID>
</bsvc:Purchase_Item_Reference>
</bsvc:Request_References>
</bsvc:Get_Purchase_Items_Request>
Что я пробовал:
- Я использую модуль ElementTree в python для обработки XML в моей текущей программе.Я изучил документы, но не могу найти способ генерировать образцы без более глубокого понимания того, как это делается в существующих системах
- Я нашел то, что, как мне кажется, генерирует шаблоны внутри кода SOAPUI с открытым исходным кодом, пытаясьпонять, как они это делают.Проблема в том, что я недостаточно знаю Java, чтобы использовать их код.Кроме того, я хочу продолжить, как я в настоящее время использую python.
- Модуль Zeep часто рекомендуется для работы с SOAP-клиентами.В настоящее время я учусь его использовать.Однако, опять же, поскольку я не понимаю, как создаются шаблоны, я изо всех сил пытаюсь использовать Zeep, чтобы это произошло.Еще раз, я хотел бы продолжить, используя ElementTree и Python.Даже если бы мне удалось сделать это с Zeep, я все равно не понял бы, как создаются шаблоны.
- Я создал классы в своем коде Python, которые обрабатывают различные части файла WSDL.Я не понимаю, как объединить различные части в шаблон XML.
TLDR : Как шаблоны XML создаются из файлов WSDL?Как я могу проанализировать WSDL, содержащий несколько операций, и сгенерировать шаблон XML для одной, в частности?