ようやくRuby(とRails)の勉強を始めました。ということで、今日教えてもらったことのメモ:
Web APIを呼び出すとときって大抵、
http://hogehoge.com/api?param1=aaa¶m2=bbb¶m3=ccc
のようにURL(API)の後に、引数をくっつけて渡すんですが、僕がよくPHPでやっているのはパラメーターをハッシュ(連想配列)に格納してimplodeで結合する以下のようなやり方です:
$api = "http://hogehoge.com/api?";
$param = array("param1"=>"aaa", "param2"=>"bbb", "param3"=>"ccc");
$p = array();
foreach($param as $key => $value){ $p[] = $key."=".$value; }
$api .= implode("&",$p);
$f = file_get_contents($api);
$xml = simplexml_load_string($f);
以下XMLの処理
で、これをRubyだと
api = "http://hogehoge.com/api?"
param = { :param1=>"aaa", :param2=>"bbb", :param3=>"ccc" }
p = []
param.each {|key,value| p << "#{key}&#{value}" }
api += p.join("&")
f = open(api) # require "open-uri" が必要
xml = XmlSimple.xml_in(f) # RailsのAPI?
以下XMLの処理
こんな感じでしょうか 。あんまり簡単になってない・・・。多分もっと短く&格好良くやるやり方があると思うんですが、PHP脳の今の僕だとこんな感じ
こういった細かいところって写経しただけじゃ頭に入ってこないので、やっぱりなんか自前のアプリを何回か作る必要がありますね。ということで、ジュンヤさんにまたも乗せられて、こんな本を買ってしまいました
Rubyレシピブック 第2版 268の技
これで、週末もう少し勉強、、、したいな〜
Ruby