【Swift】ぐるなびのレストラン検索APIを使ってみた

レストランのデータを取得したい。

そういう時はぐるなびのレストラン検索APIがおすすめ。

食べログのように点数は無いけれど、お店のURLや画像、価格を入手できる。

一応食べログも探してみたけど、APIは公開されていない感じ。

Yelp!という海外のサービスでもレストラン検索のAPIは公開されているようだけど、ドキュメントが英語だったので使うのをやめた。

「ぐるなび Web Service」は開発者にとても親切なサイトだ。

例えば、レストラン検索のAPIの仕様は以下に公開されている。

https://api.gnavi.co.jp/api/manual/restsearch/

私は過去にNews API、Yelp、FourSquareなど海外サービスのAPIを使ってサービスを開発したけど、こんなに丁寧なサイトは初めてみたかもしれない。

テストツールも公開されているので、リクエストやレスポンスをテストできる。

テストツールを叩きながら、私の作っているアプリを以下の仕様にした。

  • 位置情報とカテゴリー(料理の種類:「寿司」)を指定する
  • APIを叩いて戻ってきたお店の位置情報やURLを表示する

まずはアカウントを登録してKeyIDを取得。

メールアドレスを登録したらすぐにKeyIDが送られてきた。

調査目的だと3ヶ月が有効期限のようだ。

カテゴリー指定は大業態マスタ取得APIを使う。

https://api.gnavi.co.jp/api/manual/categorylmaster/

大業態マスタAPIのリクエストとレスポンスは以下の通り。

# keyIDはアカウントに登録するともらえる
let url = "https://api.gnavi.co.jp/master/CategoryLargeSearchAPI/v3/?keyid=" + keyId

# 上記のURLにアクセスすると以下のレスポンスが返ってくる
{
    "@attributes": {
        "api_version": "v3"
    },
    "category_l": [
        {
            "category_l_code": "RSFST09000",
            "category_l_name": "居酒屋"
        },
        {
            "category_l_code": "RSFST02000",
            "category_l_name": "日本料理・郷土料理"
        },
      :

カテゴリーコードが取得できた。

次にレストラン検索APIを使って周辺のお店情報を取得する。

緯度と経度、カテゴリーコードを指定する。

var url = "https://api.gnavi.co.jp/RestSearchAPI/v3/?keyid=" + keyId
       url += "&latitude=" + String(loc.latitude)
       url += "&longitude=" + String(loc.longitude)
       url += "&category_l=" + "RSFST08000" //ラーメン

これで周辺のラーメン屋の情報が取得できた。

便利ですね〜。

ABOUTこの記事をかいた人

個人アプリ開発者。Python、Swift、Unityのことを発信します。月間2.5万PVブログ運営。 Twitter:@yamagablog