Life, Education, Death

プログラミング以外でも思ったことをつらつらと書きたい

あるお店のメニューを取得する方法について調べてみた

日本でも100人ぐらいは興味があるであろう、レストランのメニューを取得する方法についてまとめた。
(2012/01/29 現在の情報です)

日本語でまず調べてみたところ、あまりヒットしなかったので、英語で「 restaurant api」とぐぐったが
やっぱり、レストランのメニューを検索可能にする活動は日本では行われている気配はなかった。
また、programmablewebというサイトで調べると11API見つかった。
ProgrammableWeb API Search: restaurant
あと
Stackoverflowによるとメニューの標準化を行おうとしているOpenmenuというサービスがあるらしい。
http://stackoverflow.com/questions/4177430/api-to-access-restaurant-menu-data

とりあえず、英語サイトと戦いながら、調査してみました。

Openmenu - sharing your menu with world

無料で使い始められるフリーミニアムタイプのサービスで、FacebookなどのWebサービスと連携してメニューの更新通知をしたり
見やすいメニューを簡単に提供できるサービスのようだ。

screenshot
Sharing your restaurant's menu with the world - OpenMenu™

APIが提供されていて、レストランを店名、場所、電話番号から検索でき、
API Keyを取得すれば使えて、出力はXMLJSONで受け取れる。
自分のメニューの更新APIも提供されているようだ。
OpenMenu API - OpenMenu.org

Free accounts get 1000 calls/day, Supporting Membership accounts get 2500 calls/day, Enterprise access gets custom daily limits based requirements (API requests that do not meet the requirements may be approved and limited to 100 calls/day)

とあったので、会員になると、APIの発行数が増えるようだが、1000回もコールできれば、小さなお店であれば問題なさそうだ。

ちなみに、OpenMenuのXMLの仕様はこんな感じでした。

有料プランについてはイマイチわからなかった(英語力足りない・・・)

Order.in

レストランとお客様をつなぐことがミッションというWebサービス。メニューよりも店舗の方に向いている印象を受けた。
あまりメニュー検索には力が入っていない模様。
注文できるAPIを備えたWebサービスって日本にはあるのだろうか???

Ordr.in
screenshot

JSONPを使うメニューを検索できるAPIがあった。各APIをテストするフォームがついているので作るときに
助かりそう。

Food Genius

レストランではなく、食べ物を検索できるようにするサービス。
Food Genius + ○○でサイコーの体験が得られるぜ!みたいなことがトップに書かれていて、今っぽい印象を受けた。
140万のメニューデータを持っているとあるのでOpenMenuよりも少し少ないようだ。
しかしならが、メニューデータ特化で、APIでコラボレートすることが前提なのが好印象

Big Data and Insight Solutions for the Food Industry | Food Genius
screenshot
APIこちら

APIはRestfulでOAuth1.0に対応していて、2.0に移行する予定のようだ。
APIドキュメントがわかりやすく実際に使うまでの敷居が低い印象を受けた。
Place、Menu、Tasteの三つから検索ができるAPIが提供されている。

APIへのリンク

Place

Placeは場所からレストランを検索できる。

Menu

Menuは緯度経度と検索する範囲(半径)を指定してメニューのデータを検索する。
または、Food Genius内のIDを指定して特定のレストランのメニューも検索出来る
検索結果として、メニューの説明とお店の名前が出てくる(写真がないのが残念)

また、そのうち特権ユーザーのみ(privileged users)にメニューの書き込み権限を与える予定らしい。

Taste

Tasteはユーザーの嗜好を操作するAPI
機能としては

  • ユーザーの好む距離、価格帯の取得、更新
  • メニューや場所についての評価の検索・登録
  • 特定の場所にあるオススメメニューを検索

が出来るAPIAPIの種類も多く、一番複雑なAPI

ユーザーから収集した嗜好データを解析した結果を使えるAPIになるので、かなり便利なAPIだと思った。
あとTaste APIで管理するユーザーはアプリケーションごとに管理されるっぽい(間違えてたらごめんなさい)

menu mania

OpenMenuのようにお店のメニューを作れるサービスで、取得するためのWebAPIが用意されている。
お店とお客様を繋げる魅力的な機能があるよって感じのサービス。
検索結果のデータにメニューの写真やカテゴリーなど詳細なデータが一発で取得出来るAPIがあり、電話番号か位置情報から検索ができる。

Auckland Restaurants - Auckland Restaurant & Cafe Guide
screenshot

Open Dining Network

Online Ordering System for Restaurants | Web, Mobile, and Social Orders | Open Dining
screenshot

※あんまり調べられてないので、今度調べる

感想

各サービスで提供されているのは、お店側でメニューを作るのを支援するサービスを提供する代わりに
メニューのDBを獲得するものだった。
(Food Geniusは一部ユーザーのみ書き込みが可能になる予定)
ユーザーが勝手にメニュー一覧を作って投稿するモデルの方がデータが集まりやすくていいんじゃないかと
思うのだが、何でないのだろうか?