オープンデータをRESTで検索してみた
WebFOCUSのデータアダプタでは、REST API を使用したデータ検索ができます。
今回は、RESTアダプタを使用して、オープンデータを検索してみました。
REST 【 Representational State Transfer 】
引用元:IT用語辞典 e-Words
RESTとは、分散システムにおいて複数のソフトウェアを連携させるのに適した設計原則の一つ。
一般によく使われる(本来は狭義の)RESTは、パラメータを指定して特定のURLにHTTPでアクセスすると、XMLやJSONなどで記述されたメッセージが送られてくるようなシステム、および、そのような呼び出し規約(「RESTful API」と呼ばれる)のことを指す。
今回利用したサービス
統計ダッシュボード
国や民間企業等が提供している主要な統計データをグラフ等に加工して一覧表示し、視覚的に分かりやすく、簡単に利用できる形で提供するシステムです。
引用元:統計ダッシュボードとは
データの構造やAPIの説明なども、同サイトで説明されていますので、すぐに利用することができます。
Web APIを調べる
Web APIを調べてみます。
XMLフォーマットのデータを取得するのであれば、
ベースURL: https://dashboard.e-stat.go.jp/api/1.0/Xml/getData?
必須パラメータ: IndicatorCode (系列コード)
ウェブブラウザで指定するならこんな感じ
https://dashboard.e-stat.go.jp/api/1.0/Xml/getData?
IndicatorCode=0201010000000010000
※実際には改行は含まれません
系列コードは、別途「統計メタ情報(系列)」のAPIで取得した系列コードを使用とのことだが、今回は系列コードを固定して使用しました。
これだけ指定すれば統計データが取得できるとのことですが、絞り込みたいので、下記のパラメータを追加して使用してみます。
パラメータ名 | パラメータの概要 | コード | 説明 |
---|---|---|---|
ParentRegionCode | 上位地域コード | 情報を取得したい地域コードの上位地域コード5桁 | 例1) 「00000」(全国) 「01000」(北海道) |
RegionalRank | 地域階級 | 1,2,3,4 | 国、全国(日本)、都道府県、市区町村 |
TimeFrom | 時間軸(開始) | yyyymm00 yyyy1Q00,yyyy2Q00,yyyy3Q00,yyyy4Q00 yyyyCY00 yyyyFY00 | 月 四半期 暦年 年度 |
TimeTo | 時間軸(終了) | 時間軸(開始)と同じ | 時間軸(開始)と同じ |
Cycle | データ周期 | 1,2,3,4 | 月、四半期、年、年度 |
パラメータを組み合わせるとこんな感じになります。
https://dashboard.e-stat.go.jp/api/1.0/Xml/getData?
IndicatorCode=0201010000000010000
&ParentRegionCode=00000&RegionalRank=3
&TimeFrom=1980CY00&TimeTo=9999CY00&Cycle=3
※実際には改行は含まれません
WebFOCUSデータアダプタを設定する
Webコンソールへログインして、REST用のデータアダプタを構成する 【参考】シノニムの作り方
新規データソースを選択する
RESTを選択する
任意の [接続先名] と [ベースURL] を入力して [構成] ボタンをクリックする
設定例
接続名: E-STAT-DASH
ベースURL: https://dashboard.e-stat.go.jp/api/1.0/Xml
RESTアダプタが構成されていることを確認する
シノニムを作成する
シノニムを作成するアプリケーションフォルダを右クリックして、[新規] – [シノニム] をクリックする
作成したデータソースをダブルクリックする
[サービスURL拡張子] へ「getData」を入力する
[サービスURLパラメータ] へ下記を入力する
IndicatorCode=0201020000000010000&RegionCode=&ParentRegionCode=&RegionalRank=&TimeFrom=1980CY00&TimeTo=9999CY00
ここで、設定したパラメータは、今後のリクエスト実行時における抽出条件として使用できるパラメータとなります
抽出条件として使用したいパラメータは指定しておくようにします
[シノニム名] に保存する名前を指定する
[シノニムの作成] ボタンをクリックする
パラメータは、REST API側の仕様によって変動します。上記の例では、値を設定しているパラメータと設定していないパラメータがありますが、REST API側の仕様として、指定が必須のパラメータは指定しないとエラーとなってしまうため、デフォルト値として値を設定します。
アプリケーションフォルダ [baseapp] 以下にシノニム [getdata] が作成されていることを確認する
シノニム [getdata] を右クリックして、[サンプルデータ] をクリックする
[出力セグメントを選択してください] から [DATA_OBJ] を選択する
選択するセグメントは、取得するデータに依存するため、取得先の仕様の確認が必要
画面下のパラメータ指定は必要に応じて設定する
設定しなかった場合は、シノニム作成時に指定したデフォルト値のまま実行される
[サンプルデータ] ボタンをクリックする
データが表示されることを確認する
今回はデータを表示するところまで実施してみました。
接続する先のAPIの仕様によって、配慮は必要となると思いますが、仕様がきちんと公開されていればいろいろなサービスと連携できそうです。
データベースのデータを組み合わせてみたり、いろいろ活用が期待できそうです。
今後は、作成したシノニムを使用したレポートの作成についても実施してみたいと思います。