CData Software Blog

クラウド連携のCData Software の技術ブログです。

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

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

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

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

www.atmarkit.co.jp

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

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

f:id:sugimomoto:20201222115943p:plain

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

f:id:sugimomoto:20201222120046p:plain

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

f:id:sugimomoto:20201222120130p:plain

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

f:id:sugimomoto:20201222131414p:plain

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

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

f:id:sugimomoto:20201222130952p:plain

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

f:id:sugimomoto:20201222131055p:plain

APIの使い方

API の使い方も簡単です。

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

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

アカウントの作成

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

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

f:id:sugimomoto:20201222120706p:plain

f:id:sugimomoto:20201222120713p:plain

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

f:id:sugimomoto:20201222120719p:plain

アプリの作成

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

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

f:id:sugimomoto:20201222121025p:plain

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

f:id:sugimomoto:20201222121033p:plain

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

f:id:sugimomoto:20201222121040p:plain

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

f:id:sugimomoto:20201222121048p:plain

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

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

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

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

f:id:sugimomoto:20201222121312p:plain

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

f:id:sugimomoto:20201222121320p:plain

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

f:id:sugimomoto:20201222121325p:plain

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」になります。

f:id:sugimomoto:20201222121617p:plain

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

f:id:sugimomoto:20201222121701p:plain

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

f:id:sugimomoto:20201222121733p:plain

f:id:sugimomoto:20201222121801p:plain

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

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

f:id:sugimomoto:20201222121816p:plain

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

f:id:sugimomoto:20201222121938p:plain

CData REST Driver で繋いでみた

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

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

www.cdata.com

f:id:sugimomoto:20201222122028p:plain

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

f:id:sugimomoto:20201222130550p:plain

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

f:id:sugimomoto:20201222130633p:plain

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

f:id:sugimomoto:20201222130742p:plain

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

f:id:sugimomoto:20201222130759p:plain

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

f:id:sugimomoto:20201222130838p:plain

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

f:id:sugimomoto:20201222130900p:plain

おわりに

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

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