小業態マスタ取得API


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

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

リクエストパラメータ

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

レスポンス

パラメータ名
(タグ名、@付きは属性名)
出現回数 説明 備考
response 1 complexType レスポンスルートノード  
@api_version - string APIのバージョン  
  category_s 複数回 complexType 小l業態情報  
  category_s_code 1 string 小業態コード  
category_s_name 1 string 小業態名称  
category_l_code 1 string 所属する大業態コード 外部参照キー

サンプル

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

<!DOCTYPE html>
<html lang="ja" dir="ltr">
<head>
<meta charset="utf-8" />
<title>JSONPで小業態マスタ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/CategorySmallSearchAPI/20150630/?callback=?';
  var params = {
    keyid: '',
    format: 'json'
  };

  var showResult = function(result){
    var res = '';
    for ( var i in result.category_s ){
      res += result.category_s[i].category_s_code + ' ' + result.category_s[i].category_s_name + '\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/CategorySmallSearchAPI/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,"category_s") == 0){
       foreach($val as $k =>$v){
          echo $v->{'category_l_code'} . "\t" .$v->{'category_s_code'} ."\t".$v->{'category_s_name'} ."\n";
       }
   }
}
?>
                
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#*****************************************************************************************
# ぐるなびWebサービスの小業態マスタ検索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/CategorySmallSearchAPI/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 "category_s" in data :
  print u"エリアデータがなかったため終了します。"
  sys.exit()

# 出力件数
disp_count = 0

# レストランデータ取得
for category_s in data["category_s"] :
  line                 = []
  category_s_code      = ""
  category_s_name      = ""
  category_l_code      = ""

  # 大業態コード
  if "category_l_code" in category_s and is_str( category_s["category_l_code"] ) :
    category_l_code = category_s["category_l_code"]
  line.append( category_l_code ) 
  # 小業態コード
  if "category_s_code" in category_s and is_str( category_s["category_s_code"] ) :
    category_s_code = category_s["category_s_code"]
  line.append( category_s_code )
  # 小業態名称
  if "category_s_name" in category_s and is_str( category_s["category_s_name"] ) :
    category_s_name = u"{0}".format( category_s["category_s_name"] )
  line.append( category_s_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サービスの小業態マスタ取得APIを実行し結果をパースするプログラム
 * 注意:アクセスキーはアカウント登録時に発行されたキーを指定してください。
 *      JsonをパースするためにライブラリにJacksonを追加しています。
 ******************************************************************************/
public class TestJavaCateS {

  public static void main(String[] args) {
      //アクセスキー
      String acckey = "input your accesskey";
            //返却形式
      String format = "json";
      //エンドポイント
      String gnaviRestUri = "http://api.gnavi.co.jp/master/CategorySmallSearchAPI/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("category_s")){
            String catl_code = n.path("category_l_code").asText();
            String cats_name = n.path("category_s_name").asText();
            String cats_code = n.path("category_s_code").asText();
            System.out.println(catl_code + "¥t" + cats_code + "¥t" + cats_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」を使ってみる