政府API、ただ公開するだけじゃダメだよね?運用・契約テストで信頼を作る技術設計

IT政策の提案
政府API、ただ公開するだけじゃダメだよね?運用・契約テストで信頼を作る技術設計

どうも〜おかむーです!今日は政府・自治体のAPI運用について、ちょっとエンジニア寄りに突っ込みますよ〜

  • 行政が公開するAPI、数だけじゃなく「契約(contract)」と運用が大事
  • OpenAPI・スキーマ・契約テストをCIに組み込むだけで現場の信頼性が激変する!
  • 「公開 → 放置」を防ぐためのメトリクスと改善フローを提案するよ

結論

政府/自治体のAPIは“公開”して終わりにしない仕組み作りが肝心です。APIをプロダクトとして捉え、OpenAPI・バージョニング・契約テスト(consumer-driven contract)・SLO/監視をCI/CDで自動化すれば、データ利活用の導線が劇的に改善します。

レポート本文

現状観察:APIカタログはあるけど運用の粒度が足りない

これ見てくださいよ:e-Govの「行政API」カタログ(https://www.e-gov.go.jp/digital-government/api)や東京都のオープンデータAPI(https://portal.data.metro.tokyo.lg.jp/opendata-api/)が公開されてるんですけど、

  • OpenAPI仕様の有無がまちまち
  • スキーマ変更の履歴や互換性ポリシーが見えにくい
  • 更新頻度・SLA・メンテ窓口が明記されていないケースが多い

要するに、APIは存在しているけど“契約”としての体裁が弱いということです。エンジニア的に言うと、APIはインターフェースの仕様(OpenAPI)+契約テスト+運用指標が揃って初めて使えるプロダクトになります。

技術的チェックリスト(導入の優先順)

  • OpenAPI v3でスキーマ化(必須)
  • - エンドポイント、パラメータ、レスポンス、例示JSONを定義

  • Semantic Versioning(vMAJOR.MINOR.PATCH)
  • - 後方互換性の維持方針を明文化

  • Consumer-driven contractテスト(例:Pact)を導入
  • - 利用者が期待するレスポンスをテスト化して、破壊的変更を防ぐ

  • CIでのスキーマ検証+自動デプロイ
  • - PRごとにOpenAPIの差分チェックを走らせる

  • 運用指標(SLO/SLA、uptime、latency、schema-change-rate)を公開
  • 運用用のステータスページとダウンストーリーを整備
  • 具体的なコード例

    curlで東京都の公開APIを叩く例(簡易):

    curl -s "https://portal.data.metro.tokyo.lg.jp/api/PublicFacility" | jq '.[0]'

    Pythonでスキーマ検証をする簡単な例(jsonschema使用):

    import requests, json, jsonschema
    

    resp = requests.get('https://portal.data.metro.tokyo.lg.jp/api/PublicFacility')

    data = resp.json()

    schema = {"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}}}}

    jsonschema.validate(data, schema)

    政策目標と実績のギャップ(定性的分析)

    デジタル行政推進では「オンライン化・API化を進める」目標が掲げられてますが、現場では「APIは出したけど仕様変更や可用性の説明が無い」ために事業者が採用をためらうケースが散見されます。政策目標(API利活用の促進)と実績(実際の利用・二次利用の増加)のギャップは、可用性と仕様保証の欠如が主因と考えられます。

    改善提案(即効性ある手順)

    • APIカタログにOpenAPIファイルのURL、バージョン履歴、互換性ポリシー、問い合わせ窓口を必須フィールドにする
    • CIに契約テスト(Pact/Dredd)を組み込み、schema-breakingなPRはマージ不可にする
    • Prometheus + GrafanaでSLOを可視化、月次でSLOレポートを公開
    • CSV/PDFでしか出ていないデータはまずAPIラップしてJSON化し、OpenAPIを発行する(変換レイヤーを用意するだけで活用が倍増します)

    まとめ

    APIは公開がスタートライン。仕様の明確化(OpenAPI)、契約テスト、バージョニング、監視をセットで運用することが、政策目標と現場活用のギャップを埋めます。これ、エンジニアなら直感的にわかるはずです!

    おかむーから一言

    テクノロジーで行政をアップデートするのはワクワクします。まずは小さなAPI一本を本気で運用してみてください。信頼はコードで作れるんです!

    シェアする