すでにわかってること、聞いてもよくわからなかったこと、あったけれども、今の自分の知識量でかろうじて理解できて、へぇ!と思ったことの記録。
食べログ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 件のコメント:
コメントを投稿