エイビーロード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
2008年03月02日(日) 10:40:48 Modified by y_tabira




スマートフォン版で見る