#3 API/GURUNAVI WEB SERVICE
グルナビさんが公開しているWEBAPIの紹介です。なかなかサーバサイドと本格的にやりとりできるAPIは公開されていないので、とても役に立ちます。WEBAPIってなに?どんなのものか見てみたいという方にも最適なAPIです。
そもそもAPIとは、とあるサーバーにある情報をユーザーに提供するためののものです。広義にはHTTPプロトコルを用いてネットワーク越しに呼び出すアプリケーション間のインターフェースのことをさします。
GURUNAVI WEB SERVICE
①登録
まずは、新規アカウントを発行してください。登録が完了するとメールが送られてきます。アドレス認証が完了すると専用のアクセスキー(その名の通り鍵みたいなもの)が続けてメールで送られてきます。
②使いたいAPIを選択
API仕様一覧から、使用したいAPIを選択してAPIのURLを取得します。
レストラン検索APIのAPIをたたく場所(URL)は、
https://api.gnavi.co.jp/RestSearchAPI/v3/
です。これでURL(エンドポイント)と、アクセスキーを取得できました。
次に、無数にあるサーバー内の情報から自分が欲しいデータをどのようにリクエストしたらよいのか、リクエストしたあとどういった情報が返ってくるのかをまとめた仕様書(のようなもの)を見ていきます。
リクエストパラメーターを見てみるとkeyidは、必須となっているのでリクエストの際に必ず入力しないといけない情報です。これは、最初に取得したアクセスキーです。ただし、keyidだけではエラーが返ってきます。(と書いてあります。)最低でも、keyidともうひとつ情報をリクエストしないと情報が返ってこないことになります。
レスポンスは、リクエストした際に帰ってくる情報の構造体のことです。
試しに、リクエストをしてどういう情報が返ってくるか実際に見てみましょう。(テスト環境をグルナビさんが提供しています。((便利)))
パラメータとなっている部分がリクエストです。テンプレでテスト用keyidが入力されています(※テスト専用アクセスキーです。本番環境では使用できないキーなので注意)
リクエストパラメータに パラメータ名⇒name 型⇒sting 説明⇒店舗名 とあるので、nameに店舗の名前を入れてリクエストしてみます。ここでの型はStringなので文字列でリクエストする必要があります。
クエリ(リクエスト情報みたいなこと)を送信すると、
{
"@attributes": {
"api_version": "v3"
},
"total_hit_count": 2,
"hit_per_page": 10,
"page_offset": 1,
"rest": [
{
"@attributes": {
"order": 0
},
"id": "n261308",
"update_date": "2020-10-10T06:18:44+09:00",
"name": "もつ鍋 創作市場 はん蔵もん。",
"name_kana": "モツナベソウサクイチバハンゾウモン",
"latitude": "35.008801",
"longitude": "136.963846",
"category": "大府駅個室居酒屋もつ鍋",
"url": "https://r.gnavi.co.jp/n261308/?ak=1z7ojyRfNc3JC2qN4ym7UDgB8EuB3Pp2TiB4iXBYMYw%3D",
"url_mobile": "http://mobile.gnavi.co.jp/shop/n261308/?ak=1z7ojyRfNc3JC2qN4ym7UDgB8EuB3Pp2TiB4iXBYMYw%3D",
"coupon_url": {
"pc": "https://r.gnavi.co.jp/n261308/coupon/",
"mobile": "http://mobile.gnavi.co.jp/shop/n261308/coupon"
},
"image_url": {
"shop_image1": "https://rimage.gnst.jp/rest/img/1j8tpv160000/t_000f.jpg",
"shop_image2": "",
"qrcode": "https://c-r.gnst.jp/tool/qr/?id=n261308&q=6"
},
"address": "〒474-0025 愛知県大府市中央町4-58",
"tel": "050-3477-6101",
"tel_sub": "0562-45-4423",
"fax": "",
"opentime": "月~日・祝前日・祝日 17:00~23:00(L.O.22:30)",
"holiday": "無",
"access": {
"line": "JR",
"station": "大府駅",
"station_exit": "東口",
"walk": "2",
"note": ""
},
"parking_lots": "",
"pr": {
"pr_short": "◆もつ鍋テイクアウト大好評受付中!!◆ ◆真空パックでご提供 鍋と水とコンロだけで◎◆ ◆2人前2400円(税込)0562-45-4423◆",
"pr_long": "新鮮な状態でお届けする為に前日までにご予約お願いします。\n●セット内容(2人前 税込2400円)●\n (3人前 税込3600円)\n(追加もつ 200g 税込700円)\nスープ原液 国産牛もつ200g キャベツ もやし ニラ にんにく 鷹の爪 真空状態でお届け!説明書付きなので安心(3人前は全て1.5倍)\n●味は 1番人気【極塩ごくしお】と【醤油】【豚骨】の3種類\n●受付時間 0562-45-4423●\n14:00〜\n●受け渡し時間●\n17:00〜21:00\n自信を持ってお勧めします!是非1度食べて下さい!"
},
"code": {
"areacode": "AREA130",
"areaname": "中部",
"prefcode": "PREF23",
"prefname": "愛知県",
"areacode_s": "AREAS4312",
"areaname_s": "大府・東海",
"category_code_l": [
"RSFST09000",
"RSFST04000"
],
"category_name_l": [
"居酒屋",
"鍋"
],
"category_code_s": [
"RSFST09004",
"RSFST04004"
],
"category_name_s": [
"居酒屋",
"もつ鍋"
]
},
"budget": 3500,
"party": 3800,
"lunch": "",
"credit_card": "VISA,MasterCard,UC,DC,UFJ,ダイナースクラブ,アメリカン・エキスプレス,JCB,セゾン,MUFG",
"e_money": "PayPay",
"flags": {
"mobile_site": 1,
"mobile_coupon": 1,
"pc_coupon": 1
}
},
{
"@attributes": {
"order": 1
},
"id": "n261309",
"update_date": "2020-10-04T00:44:42+09:00",
"name": "もつ鍋 創作市場 はん蔵もん。 半田花園店",
"name_kana": "モツナベソウサクイチバハンゾウモン ハンダハナゾノテン",
"latitude": "34.874715",
"longitude": "136.905357",
"category": "牛もつ鍋 個室宴会",
"url": "https://r.gnavi.co.jp/7svy211x0000/?ak=1z7ojyRfNc3JC2qN4ym7UDgB8EuB3Pp2TiB4iXBYMYw%3D",
"url_mobile": "http://mobile.gnavi.co.jp/shop/n261309/?ak=1z7ojyRfNc3JC2qN4ym7UDgB8EuB3Pp2TiB4iXBYMYw%3D",
"coupon_url": {
"pc": "",
"mobile": ""
},
"image_url": {
"shop_image1": "https://rimage.gnst.jp/rest/img/7svy211x0000/t_006g.jpg",
"shop_image2": "https://rimage.gnst.jp/rest/img/7svy211x0000/t_006h.jpg",
"qrcode": "https://c-r.gnst.jp/tool/qr/?id=n261309&q=6"
},
"address": "〒475-0833 愛知県半田市花園町4-1-14",
"tel": "050-3464-5322",
"tel_sub": "0569-32-3077",
"fax": "0569-32-3077",
"opentime": "月~日・祝前日・祝日 ディナー:18:00~22:00(L.O.21:00、ドリンクL.O.21:30)",
"holiday": "不定休日あり",
"access": {
"line": "知多半島道路",
"station": "半田I.C.",
"station_exit": "",
"walk": "車5",
"note": ""
},
"parking_lots": "21",
"pr": {
"pr_short": "◇◆名物国産牛もつ鍋と拘り九州料理の店◆◇ ◇◆新メニュー【厳選】手仕込みねぎま串◆◇ ★☆【名物もつ鍋】テイクアウト承ります☆★",
"pr_long": "*****絶品【もつ鍋】を楽しむなら当店にお任せ下さい!*****\n鍋のスープは全8種。中でも【極みの塩】スープは一番の拘り。\n当店ではグランドコースに名物の国産牛もつ鍋【極みの塩】がついております。\n是非一度ご来店頂き拘りのもつ鍋をご堪能下さい。\n◇◆◇◆◇◆◇◆◇◆◇◆もつ鍋だけじゃない!◆◇◆◇◆◇◆◇◆◇◆◇\n〇厳選食材『黒毛和牛』『鹿児島黒豚』『鹿児島いいとこ鶏』【手仕込みねぎま串 3種】\n〇熊本県産の馬肉のみ使用した馬刺しがこのボリュームでこの破格!【馬刺し2種盛合せ】\n〇当店名物の塩手羽先、ハイボールのお供に是非【やみつきだッ手羽】\n〇店内手仕込み、豆乳の香りとほのかな甘みが絶品【手造り豆富】"
},
"code": {
"areacode": "AREA130",
"areaname": "中部",
"prefcode": "PREF23",
"prefname": "愛知県",
"areacode_s": "AREAS4848",
"areaname_s": "半田",
"category_code_l": [
"RSFST04000",
"RSFST09000"
],
"category_name_l": [
"鍋",
"居酒屋"
],
"category_code_s": [
"RSFST04004",
"RSFST09004"
],
"category_name_s": [
"もつ鍋",
"居酒屋"
]
},
"budget": 3000,
"party": 4000,
"lunch": "",
"credit_card": "VISA,MasterCard,UC,ダイナースクラブ,アメリカン・エキスプレス,JCB,アプラス,セゾン,MUFG",
"e_money": "",
"flags": {
"mobile_site": 1,
"mobile_coupon": 0,
"pc_coupon": 0
}
}
]
}
という情報がレスポンスされます。これと、レスポンスの構造を見ていただくと意味がよくわかると思います。rest というパラメータの構造の中に店舗の情報がはいっているのが分かります。
また、情報を返すことができない場合、エラーレスポンスも用意されています。
このように、WEBAPIを叩いて、サーバー上のデータを取得することができます。