エイビーロードWEBサービスAPIサンプル
サンプルページ
http://sakura-computer.co.jp/webservice/ab-road-xm...
ソースコード
#!D:/ruby/bin/ruby.exe -Ku require 'cgi' require 'erb' require 'open-uri' require 'pp' require 'rexml/document' REQUEST_URL = 'http://webservice.recruit.co.jp/ab-road/tour/v1/' API_KEY = 'hoge' # リクルートさんより発行されたAPIキーをセットする。 begin cgi = CGI.new query = cgi.params query['key'] = API_KEY #APIキーのセット query['format'] = 'xml' #formatをxmlに固定 uri = sprintf("%s?key=%s&keyword=%s", REQUEST_URL, API_KEY, ERB::Util.u(query['keyword'])) result = nil # xml読み込み open(uri) do |f| obj = REXML::Document.new(f.read) result = obj.elements['results'] end # 以下テンプレート script = <<-"EOF" <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>エイビーロードWebサービスのサンプル</title> </head> <body> <form action="" method="get"> キーワード:<input type="Text" name="keyword" value="#{query['keyword']}"> <input type="submit"> </form> <%- if result.elements['error'] -%> <ol> <%- result.elements.each('error') do |error| -%> <li style="color:red">エラー:<%= error.elements['message'].text %></li> <%- end -%> </ol> <%- elsif result.elements['results_available'].text.to_i == 0 %> <p>検索条件に一致するコースは見つかりませんでした。</p> <%- else -%> <p>検索結果:<%= result.elements['results_available'].text %>件中、先頭10件を表示</p> <%- result.elements.each('tour') do |tour| -%> <div style="margin:10pt 0;"> 出発地:<%= tour.elements['dept_city/name'].text %><br/> 期間:<%= tour.elements['term'].text %>日間<br/> <a href="<%= tour.elements['urls/pc'].text%>"><%= tour.elements['title'].text -%></a><br /> 宿泊地:<%= tour.elements['city_summary'].text %><br /> ブランド:<%= tour.elements['brand/name'].text %><br /> こだわり:<%= tour.elements['kodawari/name'].text %><br /> </div> <%- end -%> <%- end -%> <div style="margin:10pt 0"> <pre><%= uri %></pre> </div> <a href="http://webservice.recruit.co.jp/"><img src="http://webservice.recruit.co.jp/banner/abroad-m.gif" alt="エイビーロードWebサービス" width="88" height="35" border="0" title="エイビーロードWebサービス"></a> </body> </html> EOF #書き出し e = ERB.new(script, nil, '-') print cgi.header e.run(binding) rescue => ex print cgi.header puts ex.message pp ex.backtrace.inspect end
コメント(0) |
2008年03月02日(日) 10:40:48 Modified by y_tabira