BODIK APIは、公開されたオープンデータをデータベースに登録し、APIで検索できるようにする仕組みです。


現在、2つのAPIサーバーが稼働しています。

BODIK WAPI

BODIK ODMに集約した自治体のオープンデータの中から「自治体標準オープンデータセット」のデータをデータベースに登録しています。アプリケーションからはWebAPIで利用することができます。

BODIK FAPI

BODIK WAPIと同じ仕組みで、BODIK ODMに集約した自治体の「自治体標準オープンデータセット」のデータを「FIWARE」に登録しています。WebAPIのほかに、FIWAREの連携機能でも利用することができます。

どちらもデジタル庁が公開した「自治体標準オープンデータセット」に注目し、自治体が公開した自治体標準オープンデータセットのデータファイルをデータベースに登録し、WebAPIで利用できるようにしています。

それでは「自治体標準オープンデータセット」ではないデータをAPIで利用することはできないのでしょうか?
今回は、BODIK APIの「MyAPI(試行)」についてご紹介します。

MyAPI(試行)

MyAPIは、「任意のCSVファイルを使って、独自のAPIを作成する」仕組みとなります。

シビックテックや開発者の方は、このツールを使って次のようなことができます。

  • 自治体が公開しているデータをAPIでアクセスできるようにして課題解決のアプリを実証したい。
  • 手元にあるCSVをAPIにすればアプリで簡単に利用できることを確認したい。

自治体の担当者の場合、次のような使い方が考えられます。

  • 自治体標準オープンデータセットではないが、BODIK APIの「自治体固有のAPI」として利用したいデータがある。試しにAPIにして確認したい。

MyAPIを使う場合、いくつか注意する点があります。

  • 登録したAPIには有効期限があります。
    • 有効期限は「14日」に設定されています(調整中)。
    • 有効期限を過ぎると、APIとデータは自動的に削除されます。
    • 継続して利用したい場合は、再度CSVを登録してください。
  • APIは名前で区別します。同じ名前のAPIを登録すると、上書きされます。
    • MyAPIで作成したAPIは、接頭語として「trial_」が付きます。
    • 他者との重複・衝突を避けるために、他と区別するような名前を付けてください。
  • MyAPIで登録したAPIに別のCSVのデータを「追加」することはできません。
    • 同じ名前でMyAPIを登録すると、内容が置き換わります。(古いデータは削除されます)
  • MyAPIで登録したAPIを利用するときは「POSTメソッド」で呼び出します。
    • 後述する「APIMAKER」の「確認」にある「地図表示」「検索」で利用するアプリを参考にしてください。

MyAPIを登録するために、APIMAKERというアプリを用意しています。

APIMAKER(試作版)

APIMAKERのURL:https://wapi.bodik.jp/apimaker

APIMAKERを起動すると、次のような画面が表示されます。

図1.APIMAKER

APIMAKERの使い方

  1. CSVを指定する方法は2つあります
    • URLを指定する
      1. 例えば、ODCSに登録されているリソースのリンクをコピーし、「ファイルのURLを指定する」に貼り付ける
      2. 「URL」ボタンを押す
    • ローカルのファイルを指定する
      1. 「CSVファイル」ボタンを押す
      2. ローカルのCSVファイルを選択する
  2. 指定したCSVファイルを表形式で表示します
  3. CSVの項目名と英字表記の関係を確認し、抜けている部分を指定します
  4. 「確認」ボタンを押して、正しく設定できていることを確認します
  5. インデックスの名前を入力します
  6. 「登録」ボタンを押して、インデックスの作成とデータ登録を実行します
  7. 「地図表示」あるいは「検索」ボタンを押して、登録したAPIを確認できます

手持ちのCSVをAPIにする実行例

MyAPIを作成する

1.手元のCSVを開きます。

今回はODCSの福岡市のデータセットから「地下鉄位置情報(福岡市営地下鉄)」に登録されている「福岡市営地下鉄の駅」というCSVファイルを使います。
ファイルを指定すると、CSVの内容が表形式で表示されます。表の右側では、CSVの項目名とその英字表記、データ型を指定します。

このデータファイルは、すべての項目が項目辞書にあったようで、英字表記とデータ型が自動的に設定されました。
辞書にない項目がある場合、ユーザーが指定する必要があります。

図2.任意のCSVを読み込む

2.「確認」ボタンを押します。

すべての項目に対して、項目の英字表記とデータ型が指定されていることを確認します。
「問題ありません」が表示されたらOKです。

3.インデックス名を指定し、「登録」ボタンを押します

今回はインデックス名を「fukuoka_subway」としてみました。

図3.APIを登録

システムのAPIとの重複を避けるため、インデックス名が自動的に「trial_fukuoka_subway」に変更されました。
問題なく指定したCSVファイルの内容がAPIに登録されました。APIの名前(apiname)は「trial_fukuoka_subway」になります。

MyAPIを確認する

5.登録されたAPIを地図で確認してみよう

位置情報があるデータは、APIMAKERの「地図表示」ボタンを押して、マップで確認できます。
POSTメソッド版の「API地図表示」が表示されます。

図4.API地図表示で確認

初期状態では、指定されたAPIに登録されているデータの中から10件を検索し、地図上に表示します。右側にはAPI検索に使用した情報を表示します。

6.任意の地点をクリックしてみましょう

今回は「博多駅」をクリックしてみました。
右側の「WebAPIパラメータ」でどのようなパラメータを指定してAPIを実行したのかを確認できます。

{
    "select_type": "geometry",        # 緯度と経度を返す
    "maxResults": 10,                 # 最大100件返す
    "distance": 2000,                 # 距離は2000m
    "lat": 33.58945533558725,         # 中心点の緯度を指定
    "lon": 130.4205894470215          # 中心点の経度を指定
}

APIの実行結果は「WebAPI応答」に示したJSONで入手できます。このJSONを解析し、みつかった対象にマーカーを立てます。

図5.位置を指定して検索を実行

7.登録したAPIを検索してみよう

APIMAKERで、「検索」ボタンを押すと、POSTメソッド版の「API検索」が表示されます。

図6.API検索で確認

8.条件を指定して検索してみよう

試しに「address」に「早良区」と入力して、「検索」ボタンを押してみよう。
「address」に「早良区」を含むデータが検索されます。

図7.条件を指定して検索

右側の「WebAPIパラメータ」でどのようにパラメータを指定すればいいのかを確認できます。

{
    "select_type": "geometry",        # 緯度と経度を返す
    "maxResults": 100,                # 最大100件返す
    "address": "早良区"               # addressに「早良区」を含むデータを検索する
}

ご利用上の注意

  • このページの情報は都度更新し、最新情報を掲載するよう努めておりますが、実際の運用状況とこのページの説明が異なる場合があります。ご了承ください。
  • 最新情報については、お問い合わせください。