BODIK WAPIの利用について詳細(その1)
ここでは BODIK WAPI (BODIK Web API)の利用方法詳細について記載します。
BODIK WAPI については別ブログ記事「BODIK ODCSに登録されたデータをAPIに変換」の記事に記載されていますがここでは使い方についてもう少し細かく説明します。
BODIK ODCSとは
BigData & OpenData Initiative in Kyushu Open Data CatalogSite の略で ボディック オーディーシーエスと発音します。BODIK ODCSは、自治体がオープンデータを公開するためのオープンデータ連携基盤を、無償で提供するクラウドサービスです。オープンデータのカタログサイトです。ここに登録されたデータはWEB-APIとしてデータが取得できるようになっています。
この記事ではBODIK ODCSに登録された自治体のオープンデータをWEB-APIから利用する方法について書きたいと思います。まず BODIK WAPI はSwagger というオープンソースフレームワークでAPIを提供しています。
BODIK WAPIを利用してみる
BODIK WAPIのページに行ってみましょう。
https://wapi.bodik.jp/docs#/

APIが一覧で表示されます。
一番上の aed AED設置箇所一覧 には2つのAPIが準備されていることがわかります。
GET /aed/organization
GET /aed
HTTPのGETリクエストに応じるAPIが2つあるという事です。
最初の GET /aed/organization はAEDの位置情報のオープンデータが存在する organization(自治体)の一覧を取得できるAPIです。
言い換えると、ここで情報を取得できる自治体がわかります。この一覧に含まれない自治体の情報は取得できません。
できるだけ多くの自治体がオープンデータを再利用可能な形(このようなAPI から利用できる形)として公開してくださる事を望んでおります。
この機能は「Swagger」と呼ばれるもので、APIのインターフェイスの記述をするための標準フォーマット推進団体「Open API Initiative」のツールになります。このオープンソースツールを利用してBODIK APIインターフェイスが作成され、利用できるようになっています。
さて実際に Swagger を触ってみましょう。
一番上の /aed/organization をクリックしてみてください。
そして Try it out ボタンをクリックし、 Execute をクリックしてみてください。

Response body
の黒い画面に栃木県という文字が見えます。
その下には、目黒区という文字が見えます。
ずらーっと一覧をスクロールすると一番下には南大東村という文字が見えます。
その1セットの中には record: と書いてある部分があり、これがその自治体が公開しているデータの件数になります。
この API を、利用するためのアクセス方法が、 Curl と Request URL のところに記載されています。
以下の文字列をコピーして、Macであればターミナルに貼り付けてみてください。
curl -X 'GET' \
'https://wapi.bodik.jp/aed/organization' \
-H 'accept: applic
Windowsであれば \ と ' を削除して1行にして コマンドプロンプトに貼り付けてみてください。
curl -X GET https://wapi.bodik.jp/aed/organization -H accept: applic
または、以下の文字列をコピーして、ブラウザのURL欄に貼り付けてみてください。
https://wapi.bodik.jp/aed/organization
文字列がばーっつと返ってきたと思います。
これで、AEDの位置情報のオープンデータが存在する organization(自治体)の一覧を取得できました!
本命のAPI GET /aed
次の GET /aed です。これが本命のAPIです。
先ほどのAPIはAEDのオープンデータを公開している自治体はここですよ!という一覧が取得できました。
本命の API という意味を説明します。
今回の GET /aed は BODIK ODCS に登録された個々の自治体で公開されたCSVやEXCELファイルについてその中に記載されたAEDの住所を、全国自治体の境界を区別する事なく、横断的に検索できるのです!!
このAPIはある位置情報(例えば現在地)と探したい半径を与えると、その範囲に存在するAEDの位置情報が一覧となって取得できます。
BODIK ODCS に登録された自治体のデータを横断的に串刺し検索してAEDの位置情報を取得できる。これが本命のAPIですと言った意味になります。
/aed をクリックしてみてください。
そして Try it out ボタンをクリックし、 Execute をクリックしてみてください。

この画面で、AEDの情報を取得するための条件を指定できることが分かります。
maxResults は取得する最大件数
lat と lon は Latitude と Longitude で緯度と経度です。ここに緯度と経度を入力し、その下の distance に半径何メートルかを指定すると、その緯度経度の近辺にあるAEDの一覧が取得できます。
ここでは、別の条件で検索してみましょう。
prefectureName というところに 「福岡県」と入力し、一番下までスクロールします。

一番下までスクロールしたら Execute ボタンを押してみてください。

Response bodyのところに結果が表示されています。

ここに、福岡県にあるAEDのリストを10件(maxResultsで指定)だけ取得できたことがわかります。
これを自分のPC環境で試してみましょう。
以下の文字列をコピーして、Macであればターミナルに貼り付けてみてください。
curl -X 'GET' \
'https://wapi.bodik.jp/aed?select_type=data&maxResults=10&distance=2000&prefectureName=%E7%A6%8F%E5%B2%A1%E7%9C%8C' \
-H 'accept: application/json'
Windowsであれば \ と ' を削除して1行にして コマンドプロンプトに貼り付けてみてください。
curl -X GET https://wapi.bodik.jp/aed select_type=data&maxResults=10&distance=2000&prefectureName=%E7%A6%8F%E5%B2%A1%E7%9C%8C -H accept: application/json
Request URL にブラウザからアクセスする場合のURLが表示されています。
以下の文字列をコピーして、ブラウザのURL欄に貼り付けてみてください。
https://wapi.bodik.jp/aed?select_type=data&maxResults=10&distance=2000&prefectureName=%E7%A6%8F%E5%B2%A1%E7%9C%8C
この結果を見てみますと、以下のような文字が見えます。
"prefectureName": "福岡県",
"cityName": "飯塚市",
"name": "市役所本庁舎",
"nameKana": "シヤクショホンチョウシャ",
"address": "飯塚市飯塚市新立岩5-5",
この福岡県飯塚市の市役所本庁舎のこの住所の所にAEDがある事がわかります。
このようにして県名や、緯度経度と半径からAEDの情報一覧が取得できる事が分かりました!
その他の自治体オープンデータ
同様にして以下の情報を取得できます。(推奨データセット)
- 介護サービス事業所一覧
- 医療機関一覧
- 文化財一覧
- 観光施設一覧
- イベント一覧
- 公衆無線LANアクセスポイント
- 公衆トイレ一覧
- 消防水利施設一覧
- 指定緊急避難場所一覧
- 地域・年齢別人口
- 公共施設一覧
- 子育て施設一覧
次回は、これらのもう少し具体的な利用方法について書きたいと思います。
のなか