オープンデータをRESTで検索してみた

2020年9月13日検証してみた

WebFOCUSのデータアダプタでは、REST API を使用したデータ検索ができます。
今回は、RESTアダプタを使用して、オープンデータを検索してみました。

オープンデータとは,「機械判読に適したデータ形式で、二次利用が可能な利用ルールで公開されたデータ」であり「人手を多くかけずにデータの二次利用を可能とするもの」です。つまり,誰でも許可されたルールの範囲内で自由に複製・加工や頒布などができるデータをいいます。もちろん商用としても利用可能です。

引用元: 自治体オープンデータ

REST 【 Representational State Transfer 】
RESTとは、分散システムにおいて複数のソフトウェアを連携させるのに適した設計原則の一つ。
一般によく使われる(本来は狭義の)RESTは、パラメータを指定して特定のURLにHTTPでアクセスすると、XMLやJSONなどで記述されたメッセージが送られてくるようなシステム、および、そのような呼び出し規約(「RESTful API」と呼ばれる)のことを指す。

引用元:IT用語辞典 e-Words

今回利用したサービス

統計ダッシュボード

国や民間企業等が提供している主要な統計データをグラフ等に加工して一覧表示し、視覚的に分かりやすく、簡単に利用できる形で提供するシステムです。

引用元:統計ダッシュボードとは

データの構造や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の仕様によって、配慮は必要となると思いますが、仕様がきちんと公開されていればいろいろなサービスと連携できそうです。
データベースのデータを組み合わせてみたり、いろいろ活用が期待できそうです。

今後は、作成したシノニムを使用したレポートの作成についても実施してみたいと思います。