google-jsonschema-goのこれまでとこれから¶
チェック¶
- [ ] 本文を確認した
- [ ] 概要を確認した
- [ ] タグを確認した
- [ ]
inbox/直下へ移行した
概要¶
MCP Go SDK とともに登場した google/jsonschema-go の背景と機能を紹介する資料。
JSON Schema は JSON data の構造、型、制約を定義するための言語で、OpenAPI、REST API validation、form generation、LLM Structured Output などで使われる。
Structured Output では schema creation、serialization、validation、inference をまとめて扱える library が求められる。
本文¶
JSON Schema は、JSON data の構造や型、制約を定義するための言語。 それ自体も JSON の形で書かれる。 version があり、Draft 2020-12、2019-09、07、06 などで書き方が変わる。
Go よりも JSON Schema の data type は自由度が高い。 Union type、index ごとに型が違う array など、Go の型 system とは直接対応しにくい概念がある。
JSON Schema の用途は次の通り。
- OpenAPI
- REST API request / response validation
- JSON Schema Form による入力画面生成
- LLM Structured Output
LLM Structured Output で必要な機能は、Go type で schema を定義する Schema Creation、schema object から JSON string にする Serialization、与えられた JSON value が schema に適合するかの Validation、Go struct などから schema object を生成する Inference。
従来は、Inference は invopop/jsonschema-go、Validation は santhosh-tekuri/jsonschema のように library を組み合わせる必要があった。
google/jsonschema-go は、こうした機能をまとめて扱う library として紹介されている。
要点¶
- JSON Schema は API validation と LLM Structured Output の基盤になる。
- Go type と JSON Schema の表現力には差がある。
- Structured Output では creation、serialization、validation、inference が必要。
google/jsonschema-goは MCP Go SDK 文脈で注目される library。