2010-05-13 2 views
1

J'ai une question sur le savon rubis et wsdl.Obtenir les méthodes params type parser le fichier wsdl dans une application rails/ruby ​​

Je ne pouvais pas trouver un moyen d'obtenir les paramètres de chaque méthode et leur type. Par exemple, si je découvre qu'un soap a des méthodes appelées "get_user_information" (en utilisant wsdlDriver), est-il possible de savoir si cette méthode nécessite des params et quel type de paramètres faut-il (int, string, type complexe, ecc ..)?

Je voudrais être en mesure de créer des formulaires HTML à partir d'un fichier WSDL à distance pour chaque méthode ...

Désolé pour mon anglais horrible D

Répondre

1

Utilisez-vous soapr4?

Soap4r est livré avec un client de ligne de commande pour construire des proxies pour accéder aux services Web via SOAP. Ceci est préférable à l'utilisation de wsdlDriver qui doit construire le proxy dynamiquement chaque fois qu'il s'exécute.

Pour construire un proxy « permanent », alors vous devez exécuter la commande suivante

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

Lorsque cette commande est exécutée, alors vous devriez finir avec un tas de fichiers rubis dont un (probablement default.rb) appellera chaque méthode à tour de rôle et documentera les entrées et sorties nécessaires. Vous pouvez aussi trouver le Wsdl Analyser utile. Cela vous permettra d'entrer l'URL d'un WSDL qui sera ensuite analysé et énumérer toutes les opérations et (parfois) les paramètres requis

0

Merci pour la réponse très rapide!

Je vais essayer de me expliquer un peu mieux: D

J'ai essayé soap4r, et je suis en mesure d'obtenir les méthodes de savon avec quelque chose comme ceci:

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

Qu'est-ce que je Si j'aime savoir: Si, par exemple, mon soap a une méthode appelée "get_some_params_and_sum_them", y a-t-il un moyen de savoir combien de params cela prend et quel type ils devraient être?

Quelque chose comme

puts client.method("get_some_params_and_sum_them").params 

Analyzer le fait WSDL, et je voudrais savoir si cela est possible aussi dans un script Ruby sans tonnes de lignes de code: D

Questions connexes