「公共クラウドシステム」とは?
総務省のプロジェクト「地域の元気創造プラットフォーム」内で公開中のオープンデータ。
利用は無料で、全国の観光情報がCSV形式でダウンロードできたり、APIで検索・取得ができるというもの。利用は無料。
公共クラウドシステム
APIへのアクセス方法
HTTPのGETでKeyなどなしにAPIへのアクセスが可能。
以下のURL形式でAPIにアクセスすることができる。
https://<ホスト名>/k-cloud-api/<バージョン>/kanko/<ジャンル>/<出力データ形式>?<パラメータ群>
cf. ジャンル:温泉+名称:小滝鉱泉で検索しJSON形式でレスポンスを受け取るURL
https://www.chiikinogennki.soumu.go.jp/k-cloud-api/v001/kanko/温泉/json?limit=20&name=小滝鉱泉
APIなどの詳しい仕様については公共クラウドシステムのサイトを参照。
https://www.chiikinogennki.soumu.go.jp/k-cloud-api/genre/137.html
「公共クラウドシステム」APIのレスポンスをGsonを使って変換
Gson変換クラス
Gson object class for Kokyo Cloud System API - GitHub
GitHubに置きましたのでどうぞご利用ください。
サンプルコード
Volleyを使ってAPIにリクエストを送り、そのレスポンスをオブジェクトに変換する。
package com.test.example;
import android.app.Activity;
import android.os.Bundle;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import jp.co.equinestudio.cloudtourspot.TourSpots;
public class TestActivity extends Activity {
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
RequestQueue queue = Volley.newRequestQueue(getApplicationContext());
String uri = "https://www.chiikinogennki.soumu.go.jp/k-cloud-api/v001/kanko/%e6%b8%a9%e6%b3%89/json?limit=20&name=%e5%b0%8f%e6%bb%9d%e9%89%b1%e6%b3%89";
Request request = new StringRequest(uri, new Response.Listener<String>() {
@Override
public void onResponse(final String response) {
Gson gson = new Gson();
Type listType = new TypeToken<TourSpots>() { } .getType();
TourSpots apiResponse = gson.fromJson(response, listType);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(final VolleyError error) {
// エラー時の挙動を書く
}
});
queue.add(request);
}
}
Lombok
コードがスッキリして見やすくなるのでLombokを使用している。
Project Lombok