2009年4月23日木曜日

食べログAPIの使い方

先日、イケてるRails勉強会で学んだこと。
すでにわかってること、聞いてもよくわからなかったこと、あったけれども、今の自分の知識量でかろうじて理解できて、へぇ!と思ったことの記録。

食べログAPIの情報を検索する部分。

class Restaurant < ActiveResource::Base
 self.site = "http://api.tabelog.com/"

 def self.find_restaurants(restautant_params = {})
  restautant_params[:Key] = "**********" # APIのキーは取得する
  Hash.from_xml(
   self.find(
    :one,
    :from => "/Ver2.1/RestaurantSearch/",
    :params => restautant_params
   ).to_xml
  )
 end
end

以下、ひとつひとつの項目について。

class Restaurant < ActiveResource::Base

ActiveResource とは、簡単にRESTfulなAPIを使えるようにする機能らしい。
簡単に言うと、ActiveRecord を使うのと同じような感覚でWebAPIが使用出来る。


self.site = "http://api.tabelog.com/"

APIのホスト名までを指定。
"http://api.tabelog.com/"という場所とRestaurantモデルをリンクさせてるという認識。


restautant_params[:Key] = "**********" # APIのキーは取得する

APIの登録キーを設定。
APIのサーバーにリクエストを投げるときにリクエストのパラメータとして投げられる。


  self.find(
   :one,
   :from => "/Ver2.1/RestaurantSearch/",
   :params => restautant_params
  ).to_xml

:from のパラメータは、APIのディレクトリを指す。
:params のパラメータは、restrant_paramsのパラメータをリクエストとして投げる。


要は、このようなクラス、メソッドを設定してやった時に、

  Restaurant.find_restaurants()["restaurant"]

を指定すると、APIサーバーに、

  http://http://api.tabelog.com/Ver2.1/RestaurantSearch/?Key=**********

というリクエストを投げて食べログからレストラン情報が返ってくる。
さらに、パラメータを指定して、

  Restaurant.find_restaurants({ :Prefecture => 'tokyo' })["restaurant"]

を指定すると、APIサーバーに、

    http://http://api.tabelog.com/Ver2.1/RestaurantSearch/?Key=**********&restaurant=tokyo

というリクエストを投げて、食べログから”東京の”レストラン情報が返ってくる。

0 件のコメント: