Подтвердить что ты не робот

Создание WSDL для существующей службы SOAP с использованием захваченного трафика

Мне нужно использовать службу SOAP для принтера. Существует средство Windows для доступа к этой службе, и я использовал ее для генерации SOAP-запросов и ответов важных функций, которые мне нужны.

Теперь я должен написать клиент для Linux с помощью Python, и я нашел, что самый простой способ - использовать библиотеку suds с WSDL файлом. Но у меня нет этого WSDL!

Когда я исследовал инструмент Windows (посмотрел на hexdump исполняемых файлов), я пришел к выводу, что, вероятно, WSDL файл вообще отсутствует.

Теперь мой вопрос: есть ли у кого-нибудь опыт работы с SOAP-сервисами "обратного проектирования" и какие инструменты могут быть полезны для создания файлов WSDL для существующих служб? (Googleing еще не принес ничего полезного).

4b9b3361

Ответ 1

Вы упомянули, что это служба SOAP принтера. Является ли API-интерфейс принтера документированным на сайте производителя? Включает ли документация WSDL? Вы можете получить WSDL у производителя?

Если вы можете получить WSDL у производителя, тогда все готово!

Если нет, тогда вам нужно построить WSDL самостоятельно, потому что я сомневаюсь, что вы можете найти инструмент, который генерирует WSDL с помощью образцов SOAP (при работе с веб-службами SOAP вы, в основном, получаете два вида инструментов: те, которые генерируют код из WSDL + те, которые генерируют WSDL из кода).

Не сложно создать WSDL, если вы знакомы с SOAP, WSDL и XSD. Вам просто нужен текстовый редактор или, возможно, даже редактор WSDL, чтобы ускорить работу.

Если у вас нет полной уверенности в знаниях WSDL, есть еще некоторые инструменты, которые могут помочь вам получить максимальную отдачу от всего WSDL. Вот как вы могли это сделать:

1. Сначала вам нужно создать схему XML для SOAP-полезных нагрузок. Для этого вы можете найти инструменты, даже некоторые онлайн. После того, как у вас есть схема, настройте ее на свои нужды, добавив, изменив или удалив элементы.

2. Теперь вы можете использовать XSD для создания WSDL. Это делает онлайн-инструмент. Ему просто нужны типы элементов запроса/ответа для завершения запроса/ответа. Убедитесь, что вы прочитали инструкции.

Вы берете файл XSD, изменяете имена операций, чтобы добавить суффикс Request/Response и подавать его в WSDL Generator - Web Tool. Вы получите WSDL.

Теперь настройте этот WSDL по своему усмотрению (удалите суффиксы Request/Response, если они вам не нужны), затем...

3 - убедитесь, что вы получили действительный WSDL.

4. Теперь вы можете взять свой WSDL и использовать инструмент, например SoapUI, чтобы генерировать образцы запросов и ответов от него только до убедитесь, что вы получили правильные результаты.

Сопоставляют ли сообщения SoapUI сообщения, с которых вы начали? Если да, то вы закончили и можете подать WSDL на suds, чтобы создать клиент Linux. Если нет, настройте WSDL, пока не получите результат, который вы после него.