8
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

RESAS(地域経済分析システム)のRuby用APIクライアントを作った

Posted at

RESAS(Regional Economy Society Analyzing System)とは、内閣官房まち・ひと・しごと創生本部が公開している「地域経済の見える化システム」です。
地域の人口動態や観光の人の流れ等のデータを視覚化することができます。

RESAS に掲載されているデータは RESAS API 経由で取得できるようになっていますので、ご自分のアプリから利用、加工したい場合に便利です。
curl コマンド等でも簡単に API にアクセスできますので、どのようなデータを取得できるのかお気軽にお試しいただけるかと思います。

今回私は使い慣れている Ruby で少しでも簡単にデータを操作したかったので、まずは既存の Resas::Api という gem を利用させていただこうと思いました。
しかし当初、README に記載されているコードでは、私の環境ではうまくデータが取得できませんでした。
その後の調査も面倒でしたので、サクッと自分で実装してしまいました。

それが ResasKit という gem です。

RubyGems.org に公開していますので、皆様にも簡単にお使いいただけるかと思います。

API キーを取得する

まずは RESAS API の利用登録画面から利用登録をしていただき、API キーを取得してください。

ResasKit をインストールする

一般的な gem と同様に Gemfile に下記のように記載していただき、bundle install してください。

Gemfile
gem 'resas_kit'

※Ruby 2.0.0 以降があらかじめインストールされている必要があります

使い方

下記のように ResasKit::Client インスタンスの get メソッドを使って API を呼び出すだけです。
こちらの RESAS API 公式リファレンスも参考にしながら、アクセスしてみてください。
※2016/12/04 現在の API のバージョンは v1-rc.1 のようです

require 'resas_kit'

# API キーを指定して `ResasKit::Client` インスタンスを生成
client = ResasKit::Client.new(api_key: '1234567890ABCDEFGHIJ1234567890abcdefghij')

# get メソッドの第一引数にエンドポイント(バージョン番号以降)の文字列、
# 第二引数以降にパラメータのキーと値を指定(パラメータは lower-camelcase でも指定可能)
res = client.get('tourism/foreigners/forFrom', year: 2016, pref_code: '32', purpose: 2, add_area: '31,33')

# メソッドチェーンして取得したい情報を取得
res.body.result.changes[0].country_name

環境変数

環境変数 RESAS_API_KEY に API キーをあらかじめ設定しておくことで、ResasKit::Client インスタンスの生成を簡略化することができます。

client = ResasKit::Client.new

まとめ

上記のように、簡単に API 経由でデータを取得し、操作できることがおわかりいただけたかと思います。

現時点(ResasKit v0.1.0)では、get メソッドのみが実装されており、第一引数の指定が少し面倒かもしれません。
今後、各エンドポイントにアクセスするための専用のメソッドを増やしていく予定です。

その他、ResasKit の機能について何かご要望等がありましたら、お気軽にご連絡ください。

8
4
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?