エリアLマスタ取得API


URL:http://api.gnavi.co.jp/master/GAreaLargeSearchAPI/20150630/

※旧バージョン(http://api.gnavi.co.jp/ver2/GAreaLargeSearchAPI/)をお使いの場合は、こちらのバージョンに変更をお願いします。
詳細は、「APIのURL変更のお知らせ」をご確認ください。

リクエストパラメータ

パラメータ名 必須 説明 備考
keyid string アクセスキー ぐるなびより提供されたアクセスキー
lang   string 返却データの言語 ja: 日本語, zh_cn: 中国語 (簡体字), zh_tw: 中国語 (繁体時), ko: 韓国語, en: 英語
format   string レスポンス形式 xmlまたはjson(callback関数指定時にJSONP形式で出力)
callback   string コールバック関数 formatが「json」の場合のみ

レスポンス

パラメータ名
(タグ名、@付きは属性名)
出現回数 説明 備考
response 1 complexType レスポンスルートノード  
@api_version - string APIのバージョン  
  garea_large 複数回 complexType エリアL情報  
  areacode_l 1 string エリアLコード  
areaname_l 1 string エリアL名称  
pref 複数回 complexType 都道府県情報  
  pref_code 1 string 都道府県コード  
pref_name 1 string 都道府県名  

サンプル

下記よりご確認ください。またAPIテストツールもご用意しています。

<!DOCTYPE html>
<html lang="ja" dir="ltr">
<head>
<meta charset="utf-8" />
<title>JSONPでエリアLマスタAPIの結果を取得するサンプルコード</title>
</head>
<body>
<input type="text" placeholder="enter your access key here" class="js--key"><input type="button" value="apply" class="js--apply" />
<script src="https://code.jquery.com/jquery-1.11.2.min.js"></script>
<script>

(function(){

  var url = 'http://api.gnavi.co.jp/master/GAreaLargeSearchAPI/20150630/?callback=?';
  var params = {
    keyid: '',
    format: 'json'
  };

  var showResult = function(result){
    var res = '';
    for ( var i in result.garea_large ){
      res += result.garea_large[i].pref.pref_code + ' ' + result.garea_large[i].areacode_l + ' ' + result.garea_large[i].areaname_l + '\n';
    }
    alert(res);
  }

  $(document).on('click', '.js--apply', function(){
    params.keyid = $('.js--key').val();
    $.getJSON(url, params, function(result){
      showResult(result);
    });
  });

})(jQuery);

</script>
</body>
</html>
                
<?php
/*****************************************************************************************
  ぐるなびWebサービスのマスタ検索APIをパースするプログラム
  注意:アクセスキーはユーザ登録後に発行されるキーを指定してください。
*****************************************************************************************/

//エンドポイントのURIとフォーマットパラメータを変数に入れる
$uri   = "http://api.gnavi.co.jp/master/GAreaLargeSearchAPI/20150630/";
//APIアクセスキーを変数に入れる
$acckey= "input your accesskey";
//返却値のフォーマットを指定
$format= "json";

//URI組み立て
$url  = sprintf("%s%s%s%s%s", $uri, "?format=", $format,"&keyid=", $acckey);
//API実行
$json = file_get_contents($url);
//取得した結果をオブジェクト化
$obj  = json_decode($json);

//結果をパース
foreach((array)$obj as $key => $val){
   if(strcmp($key,"garea_large") == 0){
       foreach($val as $k =>$v){
          echo $v->{'pref'}->{'pref_code'}. "\t".$v->{'pref'}->{'pref_name'}."\t".$v->{'areacode_l'} . "\t" . $v->{'areaname_l'} ."\n";
       }
   }
}

?>
                
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#*****************************************************************************************
# ぐるなびWebサービスのエリアLマスタ検索APIを実行しパースするプログラム
# 注意:APIアクセスキーの値にはユーザ登録で取得したものを入れてください。
#*****************************************************************************************
import sys
import urllib
import json

####
# 変数の型が文字列かどうかチェック
####
def is_str( data = None ) :
  if isinstance( data, str ) or isinstance( data, unicode ) :
    return True
  else :
    return False

####
# 初期値設定
####
# APIアクセスキー
keyid     = "input your accesskey"
# エンドポイントURL
url       = "http://api.gnavi.co.jp/master/GAreaLargeSearchAPI/20150630/"

####
# APIアクセス
####
# URLに続けて入れるパラメータを組立
query = [
  ( "format",    "json"    ),
  ( "keyid",     keyid     )
]
# URL生成
url += "?{0}".format( urllib.urlencode( query ) )
# API実行
try :
  result = urllib.urlopen( url ).read()
except ValueError :
  print u"APIアクセスに失敗しました。"
  sys.exit()

####
# 取得した結果を解析
####
data = json.loads( result )

# エラーの場合
if "error" in data :
  if "message" in data :
    print u"{0}".format( data["message"] )
  else :
    print u"データ取得に失敗しました。"
  sys.exit()

# データがなかったら終了
if not "garea_large" in data :
  print u"エリアデータがなかったため終了します。"
  sys.exit()

# 出力件数
disp_count = 0

# レストランデータ取得
for garea_large in data["garea_large"] :
  line                 = []
  areacode_l           = ""
  areaname_l           = ""
  pref_code            = ""
  pref_name            = ""

  # エリアLコード
  if "areacode_l" in garea_large and is_str( garea_large["areacode_l"] ) :
    areacode_l = garea_large["areacode_l"]
  line.append( areacode_l )
  # エリアL名称
  if "areaname_l" in garea_large and is_str( garea_large["areaname_l"] ) :
    areaname_l = garea_large["areaname_l"]
  line.append( areaname_l )
  # 都道府県コード
  if "pref" in garea_large :
    pref = garea_large["pref"]

    if "pref_code" in pref and is_str( pref["pref_code"] ) :
      pref_code = pref["pref_code"]
    line.append( pref_code )
    if "pref_name" in pref and is_str( pref["pref_name"] ) :
      pref_name = pref["pref_name"]
    line.append( pref_name )
  # タブ区切りで出力
  print "\t".join( line )
  disp_count += 1

# 出力件数を表示して終了
print "----"
print u"{0}件出力しました。".format( disp_count )
sys.exit()
                
package jp.javadrive;
import java.net.URL;
import java.net.HttpURLConnection;
import com.fasterxml.jackson.databind.*;
/*******************************************************************************
 * ぐるなびWebサービスのエリアLマスタ取得APIを実行し結果をパースするプログラム
 * 注意:アクセスキーはアカウント登録時に発行されたキーを指定してください。
 *      JsonをパースするためにライブラリにJacksonを追加しています。
 ******************************************************************************/
public class TestJavaAreaL {

      public static void main(String[] args) {
            //アクセスキー
          String acckey = "input your accesskey";
          // 返却形式
          String format = "json";
          // エンドポイント
          String gnaviRestUri = "http://api.gnavi.co.jp/master/GAreaLargeSearchAPI/20150630/";
          String prmFormat = "?format=" + format;
          String prmKeyid = "&keyid=" + acckey;
          //URI組み立て
          StringBuffer uri = new StringBuffer();
          uri.append(gnaviRestUri);
          uri.append(prmFormat);
          uri.append(prmKeyid);

          //APIを実行して結果を出力
          getNodeList(uri.toString());
      }

        private static void getNodeList(String url) {

            try {

                URL restSearch = new URL(url);
                HttpURLConnection http = (HttpURLConnection)restSearch.openConnection();
                http.setRequestMethod("GET");
                http.connect();
                // Jackson
                ObjectMapper mapper = new ObjectMapper();
                viewJsonNode(mapper.readTree(http.getInputStream()));

            } catch (Exception e) {
          //TODO: 例外を考慮していません
            }
        }

        private static void viewJsonNode(JsonNode nodeList){
            //結果を表示
          if(nodeList != null){
              for(JsonNode n : nodeList.get("garea_large")){
                String area_code = n.path("areacode_l").asText();
                String area_name = n.path("areaname_l").asText();
                JsonNode pref = n.path("pref");
                String pref_code = pref.path("pref_code").asText();
                String pref_name = pref.path("pref_name").asText();
                System.out.println(pref_code + "¥t" + pref_name + "¥t" + area_code + "¥t" + area_name);
              }
          }
        }
}
                

エラー仕様

パラメータ名
(タグ名)
出現回数 説明
gnavi 1 complexType ルートノード
@api_version - string APIのバージョン
  error 1 complexType エラー
  code 1 integer エラーコード(詳細は「エラーコード一覧」をご覧ください)
message 1 string エラーメッセージ

エラーコード一覧

エラーコード エラーメッセージ エラー内容
600 NoShop 指定された店舗の情報が存在しない。
601 Invalid Access 不正なアクセス(認証エラー)。
602 Invalid Shop Number 不正なぐるなび店舗IDパラメータが指定された。
603 InvalidType 不正なパラメータが指定された。
604 Internal Server Error 処理中にエラーが発生した。

サンプルエラーレスポンス

<gnavi api_version="20150630">
  <error>
    <code>603</code>
    <message>指定されたパラメーターは存在しません</message>
  </error>
</gnavi>
              

データを正しく返却できない際は、上記のようなエラーデータを返却します(返却形式がXMLの場合)。

さっそく「ぐるなび API」を使ってみる