JSONからシンプルなYAML Schemaを生成する
フラットなJSONオブジェクトを構造、型、必須フィールドを検証するYAML Schema定義に変換する方法を学びます。基本的なプロパティマッピングとスキーマメタデータを解説します。
Basic Schemas
詳細な説明
JSONから基本的なYAML Schemaへ
最もシンプルな変換は、フラットなJSONオブジェクトからその構造を記述するYAML Schemaを生成することです。各キーはJSON値から推論された型制約を持つプロパティエントリになります。
JSON入力の例
{
"name": "my-service",
"version": "1.0.0",
"port": 8080,
"debug": false
}
生成されるYAML Schema
type: object
properties:
name:
type: string
version:
type: string
port:
type: integer
debug:
type: boolean
required:
- name
- version
- port
- debug
型推論の仕組み
| JSON値 | YAML Schema型 |
|---|---|
"hello" |
string |
42 |
integer |
3.14 |
number |
true / false |
boolean |
null |
nullable(型なし、またはtype: "null") |
スキーマメタデータ
生成されたスキーマにメタデータフィールドを追加して充実させることができます:
$schema: "http://json-schema.org/draft-07/schema#"
title: ServiceConfig
description: マイクロサービスの設定
type: object
properties:
name:
type: string
description: サービス識別子
version:
type: string
pattern: "^\\d+\\.\\d+\\.\\d+$"
port:
type: integer
minimum: 1
maximum: 65535
debug:
type: boolean
default: false
なぜスキーマにYAMLを使うのか?
YAMLスキーマはJSON形式よりも可読性が高く、特に開発者が手動で編集する設定ファイルに適しています。中括弧や引用符がないため視覚的なノイズが減り、コードレビュー時のスキーマ確認が迅速になります。YAMLはコメントもサポートしているため、スキーマファイル内に制約の注釈を直接記述できます。
スキーマに対する検証
ajv、yamale、pykwalifyなどのツールでYAMLドキュメントをYAMLスキーマに対して検証できます。CI/CDパイプラインでのスキーマ検証は、デプロイ前に設定エラーを検出します。
ユースケース
新しいマイクロサービスを作成する際、サンプル設定JSONから始めて、今後のすべての設定ファイルを検証するスキーマを定義する必要があります。既知の正しいJSONからYAMLスキーマを生成することで、min/max値やパターンなどの追加制約で改良できる即座のスタートポイントが得られます。