APIとは
岡崎オープンデータラボでは一部のデータをAPIとして提供しています。
推奨環境
以下の環境でのご利用を推奨しています。
APIでデータを利用するための手順
CKAN API
CKANは、標準でCKANのメタデータを取得するWebAPI(CKAN APIと呼びます)を提供しています。
標準のCKAN APIは、メタデータを扱いますが、CSVなど表形式のリソースファイルの中身にアクセスできるDataStore APIという拡張機能も利用できます。
CKAN API
CKAN APIを利用して、データセットのメタデータへWebAPI経由でアクセス可能です。
CKAN APIの詳細は、CKANサイトのドキュメントをご覧ください。
データセット一覧を取得
https://data.bodik.jp/api/3/action/package_search?q=<検索条件>
データセットのメタデータを取得
https://data.bodik.jp/api/3/action/package_show?id=<パッケージID>
岡崎市のデータを検索
岡崎市のデータセット一覧を取得
https://data.bodik.jp/api/3/action/package_search?q=organization:232025
岡崎市の「イベント一覧」のメタデータを取得
https://data.bodik.jp/api/3/action/package_show?id=232025_event
CKAN DataStore API
CSVやExcelといった表形式のデータについては、DataStore APIを使って、リソースファイルの中身にアクセスすることができます。
CKAN DataStore APIの詳細は、CKANサイトのドキュメントをご覧ください。
対応するデータでは、BODIK ODCSのリソース画面の右上に「データAPI」ボタンが表示されます。
岡崎市の「イベント一覧」を検索する(最初の5行)
https://data.bodik.jp/api/3/action/datastore_search?resource_id=92a4cbd7-1a7d-47ef-9ead-4c6e42fe6eba&limit=5
岡崎市の「イベント一覧」を検索する(”QURUWA”を含む行)
https://data.bodik.jp/api/3/action/datastore_search?resource_id=92a4cbd7-1a7d-47ef-9ead-4c6e42fe6eba&q=QURUWA
BODIK API
BODIK APIの詳細は、BODIKサイトのドキュメントをご覧ください。
- BODIK ODCSにCSVファイルで公開した自治体標準オープンデータセット(自治体標準ODSと呼ぶ)のデータは、BODIK APIで利用することができます。
- 岡崎市では、自治体標準ODSだけではなく、岡崎市独自のデータもBODIK APIで利用できるようにしています。
- BODIK APIのデータはFIWAREのNGSI形式でアクセスすることもできます。
BODIKサイトでは、BODIK APIを使ったサンプルアプリケーションも公開していますので、開発の参考にしてください。
BODIK API(自治体標準ODS)
岡崎市が公開した「自治体標準ODS」のデータを「BODIK API」で利用できます。
地域・年齢別人口
https://wapi2.bodik.jp/population?select_type=data&maxResults=10&municipalityCode=232025
イベント
https://wapi2.bodik.jp/event?select_type=data&maxResults=10&municipalityCode=232025
食品等営業許可・届け出一覧
https://wapi2.bodik.jp/food_business_license?select_type=data&maxResults=10&municipalityCode=232025
BODIK API(岡崎市独自データ)
岡崎市の「財政状況」をBODIK APIで検索できます。
import requests
import json
# url, headers, paramsを準備する
url = 'https://wapi2.bodik.jp/api/232025_finances'
headers = {
'accept': 'application/json',
'Content-Type': 'application/json'
}
params = {
'maxResults': 100,
'year': 2012
}
# POSTメソッドで呼び出す
response = requests.post(url, json=params, headers=headers)
if response.status_code == 200:
result = response.json()
print(json.dumps(result, indent=2, ensure_ascii=False))
BODIK API(NGSIインターフェース)
BODIK APIに登録されているデータをFIWAREのNGSIインターフェースで検索することができます。
import requests
import json
# url, headers, paramsを準備する
url = 'https://wapi2.bodik.jp/ngsiv2/op/query?limit=10&offset=0&options=keyValues'
headers = {
'accept': 'application/json',
'Content-Type': 'application/json',
'fiware-service': 'bodik'
}
params = {
'entities': [
{ 'idPattern': '.*', 'type':'event' }
],
'expression': {
'q': 'municipalityCode==\'232025\''
}
}
# POSTメソッドで呼び出す
response = requests.post(url, json=params, headers=headers)
if response.status_code == 200:
data_list = response.json()
for data in data_list:
print(json.dumps(data, indent=2, ensure_ascii=False))