ホーム DoRuby Ruby on Rails SOAP

Ruby on Rails SOAP

この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

ども、rick No.18です。
今回はSOAPについて書きます。

SOAPとは、データのやり取りをするためのもので、XMLに基づいています。

環境

ruby1.8.6
rails1.2.6

データの送受信

require “soap/wsdlDriver”
driver = “SOAP::WSDLDriverFactory.new(URL).create_rpc_driver”
# URLはWSDLファイル格納場所
# WSDLファイルによってフォーマットを決定する。(xml)
request = {“time” => “20100602100000”}
送信するデータはハッシュに入れて送信
@resopnse = driver.method(request)
これで送信ができる。
返信データは@responseに格納されている。(主に@response.body)
driver.methodのmethodはWSDLに記述されているメソッドだが、driver.singleton_methodsなどで、どのメソッドが使用可能か閲覧できる。

受信データ

自分が受信者となる場合、railsのSOAPを使用すると
SOAP::Mapping::Object:0x155556e53f10 {url}method名1=SOAP::Mapping::Object:0x155556e53217 {url}method名1-1=内容]
上記のような形式でデータが受信されます。
データの取り出し方は、
@res = @response[method名1]
=< SOAP::Mapping::Object:0x155556e53217 {url}method名1-1=内容
@res.method名1-1
=> 内容
このように取り出す事が可能です。 @resは複数になる場合、さらに配列となって格納されています。
また@responseで使用できるメソッド名もsingleton_methodsで確認可能です。

記事を共有

最近人気な記事