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

IT 정책 제안
コードで語るマニフェスト:政府データとAPIをエンジニア視点でレビュー

안녕하세요~ 오카무입니다! 오늘은 정부·지자체 데이터와 시스템을 코드 관점에서 뜯어보는 레포트입니다. 엔지니어답게 실용성과 재현성을 중심으로 평가하고, 개선 플랜까지 던져볼게요~

  • 이 글의 핵심: 공공데이터는 이미 CSV·API 형태로 공개되어 있지만 일관성·機械可読性에서 한계가 많다
  • 기술적 문제: 인코딩·スキーマ不統一、API仕様の欠如、メタデータ不足が足を引っ張ってる
  • 제안: OpenAPI·JSON Schema·CI 기반 데이터品質パイプラインで現場をアップデート!

結論

정부·지자체는 데이터 공개의 ‘量’は増えているけど、エンジニア的には『使えるデータ』になっていないことが多いです。要するに、API一本化・標準スキーマ・自動テストを入れれば活用が劇的に増えるということです!

レポート本文

現状把握 — 何が公開されているか

これ見てくださいよ:政府のAPIカタログ(https://www.e-gov.go.jp/digital-government/api)や東京都のオープンデータAPI(https://portal.data.metro.tokyo.lg.jp/opendata-api/)は既に存在します。CSVで落とせるファイル(例: 総務省のCSVリスト https://www.soumu.go.jp/main_content/000323625.csv など)も多数。

エンジニア的に言うと、公開の“足がかり”はあるんですけど、実運用でハマるポイントが山ほどあります!

よくある技術的課題

  • フォーマット不統一:CSV、Excel、PDF混在。PDFは機械判読不能!要するにデータが“埋もれてる”ということです。
  • 文字エンコーディング問題:shift_jis vs utf-8、BOMあり無しでパースが壊れる
  • スキーマ不足:カラム名が自治体ごとにバラバラで結合が辛い
  • メタデータ不足:更新時刻・ライセンス・ID・説明が欠落していることが多い
  • API仕様の欠如:OpenAPI等の仕様書がなく、認証・ページング・レート制御が不明

実践的な技術検証例(コード)

次のPython例、CSVを取ってきて正規化する基本ワークフローです。

import requests

import io

import pandas as pd

url = 'https://www.soumu.go.jp/main_content/000323625.csv'

res = requests.get(url)

res.encoding = 'utf-8' # まずutf-8で試す。ダメなら'cp932'を試す

df = pd.read_csv(io.StringIO(res.text))

カラム名正規化

df.columns = [c.strip().lower().replace(' ',' ').replace(' ','_') for c in df.columns]

print(df.head())

要するに、エンコーダ検出やカラム正規化はテンプレ化できるんです。これをCIに組み込めば初期コストで将来の手間を減らせますよね。

APIの設計観点 — ここは直したい

  • OpenAPIでエンドポイントを仕様化する(型や必須フィールド、HTTPステータスを明示)
  • JSONレスポンスを標準にして、CSVはエクスポートオプションにする
  • ページング・フィルター・ソートを統一(例: cursor-based paging)
  • メタデータ(version, updated_at, license, source_id)を必須にする

データ品質パイプライン案

  • CIでのバリデーション: JSON Schema / Great Expectationsで自動チェック
  • デプロイ前にスモークテスト: サンプルクエリでレスポンス確認
  • バージョン管理: データセット単位でスキーマとスナップショットをGitで管理
  • モニタリング: ETag/Last-ModifiedとSLA(更新頻度の期待値)を公開

政策の数値目標と実績のギャップ(一般論ベースでの指摘)

デジタル行政の目標として「オープンデータの活用促進」が掲げられることが多いです。ただ、公開件数と“実利用”は別問題。エンジニアが使いやすいAPI・ドキュメント・サンプルを用意しないと、公開データは単なるアーカイブのままです。

要するに、数値(公開件数)ではなく“使われる指標”(APIコール数、ダウンロード数、二次利用事例)をKPIにすべきです。

活用提案(すぐできること)

  • まずはAPIカタログにOpenAPI定義を追加してもらう
  • CSVを配布する場合は必ずUTF-8 + BOMなしで公開、READMEで説明
  • 各自治体で共通スキーマの作成(最低限の必須カラムを規定)
  • サンプルクエリとデータサニティチェックのコードを公開リポジトリに置く
  • 民間との協業を促すために、ライセンスを明確に(CC-BYなど)

まとめ

  • 公共データ基盤はある程度整ってきているが、機械可読性・標準化が課題
  • エンジニア的にはOpenAPI・JSON Schema・CIで一気に改善できる!
  • KPIを「公開件数」から「実利用」に変えると政策効果が見えやすくなる

おかむーから一言

테크로 사회를 바꾸는 게 가능하다고 믿습니다! 코드와 작은 자동화로 공공データ는 더 많은 가치를 낼 수 있어요. 같이 해봅시다!

공유하기