公共APIの“稼働のスコアカード”をつくる――データ信頼性をコードで保証する話

どうも〜おかむーです!今日はちょっとエンジニアっぽい話をしますよ〜。政府や自治体が公開しているAPI、データカタログ、そして時にPDFでぽつんと置かれている実績資料を技術的に見て「本当に使えるか?」を検証します。
- 3行要約
- APIレベルのSLA・稼働メトリクスを公開する標準スキーマを提案する
- 実装はヘルスエンドポイント+Prometheus互換メトリクス+日次可用性CSVで簡単に始められる
結論
APIの「存在」じゃなくて「使えるか」を定量化して公開するべきです。エンジニア的に言うと、OpenAPIやデータカタログ(例: e-Gov APIカタログ https://api-catalog.e-gov.go.jp )だけじゃ足りない。/health や Prometheus メトリクス、日次の可用性CSV/JSONを標準化して、データ利用者と監査が同じ指標を見られるようにするのが近道です。
レポート本文
現状観察:APIは増えているが“稼働の解像度”が低い
これ見てくださいよ。e-Govの行政APIや東京都のオープンデータAPI(https://portal.data.metro.tokyo.lg.jp/opendata-api/)は便利だけど、各APIの稼働履歴やレイテンシ分布、バージョン互換性の情報がカタログにまとまっていないんです。結果、開発者は「今日つながるか」を実運用でしか確認できない。
要するに、データが公開されていても「信頼できるか」は別問題ということです。
問題点を技術的に分解する
- メタデータ不足:APIの稼働履歴・メンテナンス予定・SLAがカタログにない
- 機械可読性:稼働情報がPDFや告知ページに埋められている(例:交付金実績PDFなど)→ データとして拾えない
- 監視の不統一:各サービスでヘルスチェックの実装がまちまち
技術提案:稼働スコアカード設計(実装ガイド)
1) ステータスエンドポイント(/status or /health)をAPI仕様に必須化
- JSONで {"status":"ok","uptime_seconds":...,"version":"v1.2.3"} を返す
2) Prometheus互換のメトリクスを公開
- http_requests_total, http_request_duration_seconds_bucket, service_up (0/1)
- これで既存の監視スタックに合流できる
3) 日次可用性CSV/JSONをカタログで公開
- カラム例: date, api_id, availability_percent, avg_latency_ms, error_rate
- これをDATA.GO.JPや各都道府県カタログに置く
4) OpenAPIに "x-availability" 拡張を追加してメタデータを機械化
エンジニア的に言うと、API一本ごとにPrometheusのservice_upをスコア化して日次に集約すれば、SLAの実測ができます!
具体的なコード例
bashで簡単な可用性チェックを叩く例(curl + jq):
API_URL="https://api.example.gov/endpoint"
if curl -sS -m 5 "$API_URL" | jq -e . >/dev/null; then
echo "up"
else
echo "down"
fi
Pythonで日次可用性を集計する簡易スクリプト(疑似コード):
# requestsで1分おきにチェックした結果(log.csv)を日毎に集計
import pandas as pd
df = pd.read_csv('checks.csv')
checks.csv: timestamp,api_id,status,latency_ms
daily = df.groupby(['api_id', pd.to_datetime(df.timestamp).dt.date]).agg(
availability=('status', lambda s: (s=='up').mean()*100),
avg_latency=('latency_ms','mean')
).reset_index()
daily.to_csv('daily_availability.csv', index=False)
KPIと公開データのギャップの分析例
政府の施策資料や交付金報告ではKPI達成率や実績がPDFで公表されることが多い(例: 交付金実績PDF)。要するに、数値自体は出ているけどAPIの稼働という観点で一本化されていない。これが意味するのは「施策は見えるが運用は見えない」問題です。
活用可能性とメリット
- 開発者は事前に信頼度を判断できる(リトライ戦略やキャッシュ戦略が決めやすい)
- 監査側は数値で運用改善を要求できる(SLA違反を根拠に)
- 市民はサービス停止の影響を可視化して優先度を議論できる
改善ロードマップ(ステップで示す)
まとめ
APIの数は増えているけど、信頼性を証明する情報が足りてないんです。要するに、公開データの“可用性メタデータ”を機械可読で出すだけで、利活用の土壌が劇的に変わります!Prometheus互換のメトリクス+日次可用性CSV+OpenAPI拡張でまずやってみましょう。
おかむーから一言
テクノロジーで社会をアップデートするには、まずデータが"使える"ことを証明する必要があります。小さなヘルスエンドポイント一つで、大きな信頼が生まれるんですよ〜!
情報ソース
- https://ja.wikipedia.org/wiki/%E3%83%87%E3%82%B8%E3%82%BF%E3%83%AB
- https://www.chisou.go.jp/sousei/pdf/r5_guideline-checkaction.pdf
- https://dxlab.jp/blog-arase-2021-11-15-digital/
- https://www.pref.yamaguchi.lg.jp/uploaded/attachment/160746.pdf
- https://e-words.jp/w/%E3%83%87%E3%82%B8%E3%82%BF%E3%83%AB.html
- https://www.e-gov.go.jp/digital-government/api
- https://portal.data.metro.tokyo.lg.jp/opendata-api/
- https://japan-opendata.github.io/awesome-japan-opendata/
- https://www.jichi.ac.jp/
- https://api-catalog.e-gov.go.jp/info/ja/apicatalog/list
- https://catalog.data.metro.tokyo.lg.jp/dataset
- https://portal.data.metro.tokyo.lg.jp/
- https://opendata.pref.tokushima.lg.jp/dataset/5036.html
- https://www.harp.lg.jp/opendata/dataset/79.html
- https://opendata.pref.aomori.lg.jp/dataset/1480.html
シェアする
関連レポート

公共予約システムの“ログインからAPI化”ロードマップ:パスワードレスで運用コストを下げる技術提案
公共施設予約の認証とデータを段階的にAPI化して運用コストを下げる技術ロードマップを紹介します。

政府データを“つなげる”発想:省庁バラバラを超えるフェデレーション戦略
フェデレーション層で省庁データをつなぎ、PDF混在を克服する実践的な技術案を示す。

政策ダッシュボードは“作るだけ”じゃダメ!KPIを自動で監査するパイプライン設計
政策ダッシュボードの数値を自動監査するパイプライン設計案。API・スキーマ・差分管理でKPIの信頼性を上げる技術手法を紹介します。