食べログ.COM

レストラン情報取得API サンプル


http://sakura-computer.co.jp/webservice/tabelog/ta...

ソースコード


#!D:/ruby/bin/ruby.exe -Ku
#
# $Id$
# 食べログ.com WEBサービスAPIサンプル
# 大阪の指定された駅名のレストラン情報を検索し、総合評価の高い10件を表示する。
# Auther:Yasuo Tabira(ytabira at gmail.com)

require 'cgi'
require 'erb'
require 'open-uri'
require 'pp'
require 'rexml/document'

REQUEST_URL = 'http://api.tabelog.com/Ver1/RestaurantSearch'

begin
  cgi = CGI.new
  query = cgi.params
  uri = sprintf("%s?Prefecture=osaka&Station=%s&SortOrder=totalscore&ResultSet=large", REQUEST_URL, ERB::Util.u(query['Station']))
  
  result = nil
  open(uri) do |f|
      obj = REXML::Document.new(f.read)
      result = obj.root
  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>食べログ.com API サンプル</title> 
  </head>
  <body>
      大阪うまいもん検索
      <form action="" method="get">
          駅名:<input type="Text" name="Station" value="#{query['Station']}"> 
          <input type="submit">
      </form>
      <%- if result.elements['Message'] -%>
          <font color="red">エラー:<%= result.elements['Message'] %></font>
      <%- else -%>
          <table border=1>
          <tr bgcolor="#cccccc">
            <th>名前</th><th>総合評価</th><th>住所</th><th>電話番号</th><th>営業時間</th><th>休日</th>
          </tr>
          <%- result.elements.each('Item') do |item| -%>
            <tr>
              <th><a href="<%= item.elements['TabelogUrl'].text%>"><%= item.elements['RestaurantName'].text %></a></th>
              <th><%= item.elements['TotalScore'] != nil ? item.elements['TotalScore'].text : "なし" %></th>
              <th><%= item.elements['Address'] != nil ? item.elements['Address'].text : "なし" %></th>
              <th><%= item.elements['Tel'] != nil ? item.elements['Tel'].text : "なし" %></th>
              <th><%= item.elements['BusinessHours'] != nil ? item.elements['BusinessHours'].text : "なし" %></th>
              <th><%= item.elements['Holiday'] != nil ? item.elements['Holiday'].text : "なし" %></th>
            </tr>
          <%- end -%>
          </table>
      <%- end -%>
      <div style="margin:10pt 0">
      <pre><%= uri %></pre>
      </div>
      <a href="http://apiblog.kakaku.com/"><img src="http://img.tabelog.com/images/banner/tabelog_api_135x17.gif " alt="食べログ.com WEB サービス" title="食べログ.com WEB サービス" border="0" /></a>
  </html>
  EOF

  e = ERB.new(script, nil, '-')
  print cgi.header
  e.run(binding)
rescue => ex
  print cgi.header
  puts ex.message
  print ex.backtrace.inspect
end
2008年03月02日(日) 10:29:48 Modified by y_tabira




スマートフォン版で見る