Получить методы params type parsing wsdl файл в приложении rails / ruby - PullRequest
1 голос
/ 13 мая 2010

У меня вопрос о мыле ruby ​​и wsdl.

Я не смог найти способ получить параметры каждого метода и их тип.

Например, если я обнаружил, что у мыла есть методы, называемые "get_user_information" (использующие wsdlDriver), есть способ узнать, требует ли этот метод некоторых параметров и какой тип параметров ему требуется (int, string, complex) типа, ecc ..)?

Я хотел бы иметь возможность создавать html-формы из удаленного wsdl для каждого метода ...

Извините за мой ужасный английский: D

Ответы [ 2 ]

1 голос
/ 13 мая 2010

Вы используете soapr4?

Soap4r поставляется с клиентом командной строки для создания прокси для доступа к веб-сервисам через SOAP. Это предпочтительнее использования wsdlDriver, который должен динамически создавать прокси при каждом запуске.

Чтобы создать «постоянный» прокси, вам нужно выполнить следующую команду

wsdl2ruby.rb --type client --wsdl http://some/path/to/the/wsdl

Когда эта команда запускается, вы должны получить несколько файлов ruby, один из которых (вероятно, default.rb) будет вызывать каждый метод по очереди и документировать необходимые входные и выходные данные.

В качестве альтернативы вы можете найти Wsdl Analyzer полезным. Это позволит вам ввести URL для WSDL, который он затем проанализирует и перечислит все операции и (иногда) требуемые параметры

0 голосов
/ 13 мая 2010

Спасибо за очень быстрый ответ!

Я постараюсь объяснить себя немного лучше: D

Я пробовал soap4r, и я могу получить методы мыла с чем-то вроде этого:

require "soap/wsdlDriver"
client = SOAP::WSDLDriverFactory.new(my-wsdl-url).create_rpc_driver
puts client.singleton_methods

То, что я хотел бы знать, это: Если, например, у моего мыла есть метод с именем "get_some_params_and_sum_them", есть ли способ узнать, сколько требуется параметров и какого типа они должны быть?

Что-то вроде

puts client.method("get_some_params_and_sum_them").params

Wsdl Analyzer делает это, и я хотел бы знать, возможно ли это и в сценарии ruby ​​без тонны строк кода: D

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...