コードで語るマニフェスト:政府データとAPIをエンジニア視点で検証する

- どうも~ 오카무입니다! 오늘은 정부·지자체 데이터의 '機械可読性'와 API 설계 문제를 코드 관점에서 파고들어요.
- 이 글은 e-Gov API(https://www.e-gov.go.jp/digital-government/api)와 Tokyo Open Data(https://portal.data.metro.tokyo.lg.jp/opendata-api/) 등을 실제로 보면서, PDF vs CSV 문제, 스키마 품질, 개선 방안을 제안합니다.
- 결론적으로는 「오픈데이터 = 공개」에서 끝나지 않고, 설계·운영·검証 가능한 API와 파이프라인을 만들어야 정책의 실효성이 담보됩니다.
結論
정부·지자체가 데이터와 시스템을 '공개'하는 건 시작일 뿐입니다. 진짜 엔지니어링 과제는 데이터의 기계 가독성(포맷·스키마), 신뢰성(스키마 검증·バージョン管理), 그리고 API 운영(認証·CORS·レート制限·仕様化)을 확보해, 정책 목표와 실績을 코드로 재현 가능하게 만드는 것입니다.エンジニア的に言うと、API 한 줄로 정책 검증이 가능해야 하죠!
レポート本文
現状観察:公開はあるけど“使える”か?
これ見てくださいよ。国や都道府県のポータル(e-Gov APIやTokyoのオープンデータ)は存在するんですけど、現実はこうです:
- PDFに埋められたレポートが多く、テーブルはOCRや手作業で抽出しないと再利用できない。要するに、機械にとってはゴミ箱扱いなんです。
- APIは一部公開されているが、エンドポイントごとに仕様がバラバラ。OpenAPI/JSON Schemaで仕様が定義されていないケースが多い。
- 更新頻度やバージョン管理が曖昧で、同名のデータが期間ごとに構造変化しても互換性保証がない。
実例:Tokyo Open DataのPublicFacility API(GET /PublicFacility)はJSONで取得できて便利なんですが、メタデータの説明が弱い、日付とタイムゾーンの扱いが統一されていない、IDの永続性が担保されていない、といった課題があります(参考: https://portal.data.metro.tokyo.lg.jp/opendata-api/)。e-GovのAPIカタログは良い出発点(https://www.e-gov.go.jp/digital-government/api)ですが、APIごとの実装例やサンプルコードがもっとあると開発者側の参入障壁が下がります。
技術的課題をもう少し掘る
- フォーマット:PDF > HTML > CSV/JSON/NDJSON/Parquet の順で機械可読性が下がる。
- スキーマ:JSON Schema / OpenAPIで型と必須フィールドを明示していないと、取り込みパイプラインが脆弱になる。
- メタデータ不足:更新日時、ライセンス、発行機関、連絡先が明示されてないとデータ利用の法務・運用リスクが増す。
- 運用API:CORS、認証方式(APIキー/OAuth)、レート制限、SLAが未整備だと実運用で詰む。
コードで見せる — 実際にAPIを叩く例
エンジニア的に言うと、API一本で解決する話なんですよね。例えばPythonでTokyoのPublicFacilityを引っ張る簡単な例:
import requests
import pandas as pd
url = "https://portal.data.metro.tokyo.lg.jp/opendata-api/PublicFacility"
res = requests.get(url, params={"format": "json"}, timeout=10)
res.raise_for_status()
data = res.json()
要するに、JSONをDataFrameにしてクレンジングすれば地理可視化も楽
df = pd.json_normalize(data['rows'])
print(df.columns)
このレベルのサンプルが公式にもっとあると助かりますよね。サンプルノートブック(Jupyter/Colab)を公開して、取り込み→正規化→可視化までのパイプラインを示すべきです。
政策の数値目標と実績のギャップ分析
政策は目標値を掲げるが、実績データが「人手で整備されたPDF」だと定期的な評価ができない。例えば「行政サービスの処理時間短縮」や「障害者対応トイレ数の増加」などは、時系列で追えないと改善効果が証明できない。
おすすめの流れ:
- KPIをAPIのエンドポイントで公開(/kpi/service-processing-time?period=2025Q1 みたいに)
- 生データ+集計値(mean/median/percentiles)を併記
- アンチパターン:年報PDFにだけ載せておしまい、これは評価不能。
改善提案(実装レベル)
ここは改善の余地ありまくりだと思ってます!具体的にやるなら:
- エンドポイントごとにOpenAPI仕様書(yaml/json)を公開して、型とHTTPステータスを明記する。
- PDFは人間向けの別添とし、データ配布はCSV/NDJSON/Parquetを推奨。
- メタデータ(更新頻度、バージョン、ライセンス、連絡先)を必須項目に。
- 新しいデータ投入時にスキーマチェック→差分検出→自動通知のワークフロー。
- Python/Rのサンプル、Kaggle/Colabノートを用意してコミュニティが再現可能に。
- 政策ごとにKPIエンドポイントを用意して、数値目標と実績を機械的に比較可能にする。
実運用のための技術スタック案
- データカタログ:CKAN or DataHub
- API仕様管理:OpenAPI + Swagger UI
- パイプライン:Airflow / Prefect
- スキーマ管理:JSON Schema + Confluent Schema Registry(イベント系)
- データフォーマット:日次大量データはParquet、公開APIはNDJSON/CSV
まとめ
- 公開はされているが「使える」形で出てないケースが多い。PDF文化からの脱却が第一歩です。
- OpenAPI/JSON Schema、メタデータの厳格化、CIによるスキーマ検証、サンプルコードの提供で再利用性は劇的に向上します。
- KPIをAPIとして公開すれば、政策の目標と実績をコードで比較できるようになり、説明可能性と信頼性が上がります。
おかむーから一言
テクノロジーは嘘をつかない。データをちゃんと出して、APIで繋いで、検証可能にしよう。社会はもっと早く変わるはずだよ!
정보 출처
- https://www.zhihu.com/question/290714454
- https://metidx-gov.note.jp/n/n9468573c213b
- https://www.zhihu.com/question/6430289390
- https://www.trans-plus.jp/blog/column/202210_municipality-dx
- https://www.zhihu.com/question/38923279
- https://www.zhihu.com/question/40553450
- https://www.govtechtokyo.or.jp/services/data-utilization/
- https://www.zhihu.com/tardis/zm/art/1924492115896960699
- https://note.govtechtokyo.jp/n/n77785a8254d6
- https://www.zhihu.com/question/372341437
- https://www.jichi.ac.jp/
- https://www.e-gov.go.jp/digital-government/api
- https://www.jichi.ac.jp/web_text/
- https://portal.data.metro.tokyo.lg.jp/opendata-api/
- https://www.jichi.ac.jp/library/
공유하기
관련 리포트

コードで語るマニフェスト:自治体データとシステムをエンジニア視点で検証する
自治体データはPDFやUIに閉じがち。API-firstとJSON Schemaで再利用性を高め、ガバメントクラウドへ移行する実務ロードマップを提示します。

コードで語るマニフェスト:日本政府データの現場から見る技術検証
政府データは可視化が進むも機械可読性不足が課題。CSV/JSON/API、スキーマ、ID統一で政策検証を自動化しよう。

코드로 읽는 마니페스토: 일본 정부 데이터와 시스템을 엔지니어 관점에서 후벼파기
일본 정부 데이터의 PDF·API·메타데이터 문제를 엔지니어 관점에서 분석하고, 실무 가능한 개선안을 코드 예시와 함께 제시합니다。