こんにちは。CData Software Japan、API担当の杉本です!
今朝いつものようにAPI関連ニュースをチェックしていたら、熱いトピックがありましたね!
内閣官房のIT総合戦略室が地方公共団体が保有するオープンデータを横断的に活用することができる、APIプラットフォームを公開したみたいです!
以下のページが公式です。
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にCDataタブが追加されるので、「データの取得」から「取得元:REST」を選択します。
「URI」に対象のAPIとAPIkeyが付いたURL「例)https://api.opendata.go.jp/sapporo-shi/quarantine-center-cases?apikey=XXXXX」を入力し、「OK」をクリックします。
テーブルが一つ定義されるので、それを選択することで
データ取得のためのクエリ画面が表示されます。今回はそのままとりあえずデータをロードしてしまいます。
以下のようにAPIのレスポンスを一覧形式でロードすることができました。
あとはピボットグラフなどにしてしまえば、手軽にオープンデータが分析できますね。
おわりに
こういった動きは素晴らしいですね。
もちろん、まだまだ対象データが少なかったり、認証周りがAPIKeyクエリパラメータでいいのか? レスポンスの型が全部Stringなんだけど、みたいな気になるところはいくつか見受けられますが、こういった展開はどんどん進んでほしいなと思います。