オープンデータの横断的活用の機能を備えた「APIプラットフォームサイト」のAPIを試してみた

by 杉本和也 | December 22, 2020

こんにちは。CData Software Japan、API担当の杉本です!

今朝いつものようにAPI関連ニュースをチェックしていたら、熱いトピックがありましたね!

内閣官房のIT総合戦略室が地方公共団体が保有するオープンデータを横断的に活用することができる、APIプラットフォームを公開したみたいです!

www.atmarkit.co.jp

以下のページが公式です。

https://portal.opendata.go.jp/

以前までであれば、こういったオープンデータはCSVであったりExcelであったり、はたまはPDFで公開されている、みたいなこともありましたが、今回はREST ベースのAPIとして公開されていて、実にデベロッパーフレンドリーなオープンデータになっています!

しかも驚くべきことに、API仕様書は OpenAPI Specification 3.0で書かれていて、そのSpecも自由にダウンロードして利用できます。

対象データは現在第1段ということで、札幌市、会津若松市、群馬県、東京都、神奈川県、横浜市、福井県、三重県、神戸市、福岡市の10団体がCSV形式で公開している新型コロナウイルス感染症(COVID-19)関連のデータをWeb APIとして提供しているとのことでした。

ちになみにこのAPIプラットフォームサイトはGoogle の Apigeeを用いて作られているようです。

https://portal.opendata.go.jp/about-us

問い合わせフォームもGoogle フォームが使われてますね。

APIの使い方

API の使い方も簡単です。

公式のQuick Startでも十分ですが、実際に試してみたので、その模様をお伝えします。

https://portal.opendata.go.jp/quickstart

アカウントの作成

APIにアクセスするためには、アカウントから生成できるAPIKeyが必要になります。

まずSign In画面に移動してアカウントを作成します。

First Name・Last Name・Email・Passwordを入力するだけで作成できます。その後対象のメールアドレスに確認メールが送られてくるので、それを認証すればOKです。

アプリの作成

次にAPIアクセス用のアプリを作成します。

ログイン後のメニューから「Apps」に移動して

「+New APP」をクリックして、アプリを作成します。

任意の名称とアクセスしたい対象のAPIを「Enable」にすればOKです。

作成後、APP ID・API Key・Secretが表示されます。ちなみに、APP IDやSecretは今の所特に使う必要は無いみたい? です。OAuth 2.0なのかな? と思いきやクエリパラメータにAPI Keyを付与するだけでした。

ポータルからAPIにアクセスしてみる

あとは任意のAPIにアクセスするだけです。今回は札幌のCOVID 19データにアクセスしてみました。(本当は私が住んでいる宮城県にしたかったんですが、まだ公開されていないみたいです・・・残念・・・。)

https://portal.opendata.go.jp/docs/sapporo-shi-product/1/overview

API仕様書の画面にアクセスしたら、右上の「AUTHORIZE」をクリックして

先程登録したアプリを選択します。

あとは対象のPATHSを選択して「Execute」をクリックすればAPIのレスポンスが確認できます。お手軽で素晴らしい。

PostmanからAPIにアクセスしてみる

せっかくなのでPostmanからもAPIにアクセスしてみましょう。まず、Open API SpecのURLを以下のリンクから採取します。

札幌のデータは「https://portal.opendata.go.jp/portals/api/sites/cas-jp-opendataapiportal/liveportal/apis/sapporo-shi-product/download_spec」になります。

このURLをPostmanの「Import」→「Link」のところに貼り付けます。

これでAPI SpecからPostman Collectionが自動生成されます。

次にインポートしたCollectionの設定に移動して「Authorization」タブで、API Keyを設定します。

デフォルトで以下のような設定になっているので、値:Valueのところに生成したAPI Keyを入力すればOKです。

これで任意のAPIにアクセスできるようになります。

CData REST Driver で繋いでみた

せっかくなので、私の会社の製品「CData REST Driver」でも繋いでみました。

ExcelからこのAPIに接続してみたいと思います。

www.cdata.com

トライアルをダウンロードして、セットアップすると、ExcelにCDataタブが追加されるので、「データの取得」から「取得元:REST」を選択します。

「URI」に対象のAPIとAPIkeyが付いたURL「例)https://api.opendata.go.jp/sapporo-shi/quarantine-center-cases?apikey=XXXXX」を入力し、「OK」をクリックします。

テーブルが一つ定義されるので、それを選択することで

データ取得のためのクエリ画面が表示されます。今回はそのままとりあえずデータをロードしてしまいます。

以下のようにAPIのレスポンスを一覧形式でロードすることができました。

あとはピボットグラフなどにしてしまえば、手軽にオープンデータが分析できますね。

おわりに

こういった動きは素晴らしいですね。

もちろん、まだまだ対象データが少なかったり、認証周りがAPIKeyクエリパラメータでいいのか? レスポンスの型が全部Stringなんだけど、みたいな気になるところはいくつか見受けられますが、こういった展開はどんどん進んでほしいなと思います。