設定ファイル用のJSON Schema生成
package.json、tsconfig、またはカスタムYAML/JSON設定などのアプリケーション設定ファイル用のJSON Schemaを作成します。IDEの自動補完とバリデーションを有効にします。
Real-World Schemas
詳細な説明
設定ファイルのスキーマ生成
設定ファイルはJSON Schemaの最適なユースケースの一つです。スキーマによって IDE自動補完、バリデーション、ドキュメント化 を同時に実現できるからです。
設定ファイルにスキーマが必要な理由
- 自動補完: VS Code、JetBrains IDEなどのエディタがJSON Schemaを使用して、入力時に有効なキーと値を提案します。
- バリデーション: アプリケーション起動前にタイポや無効な値をキャッチします。
- ドキュメント化: スキーマ自体がすべての設定オプションの機械可読な仕様として機能します。
例: カスタムアプリ設定
サンプル設定からスキーマを生成し、改善します:
{
"port": 3000,
"host": "localhost",
"database": {
"url": "postgres://localhost:5432/mydb",
"pool": { "min": 2, "max": 10 }
},
"features": {
"darkMode": true,
"betaAccess": false
},
"allowedOrigins": ["https://example.com"]
}
主な改善ポイント
default値 でフィールドが省略された場合にアプリケーションが使用する値を伝えます。featuresはadditionalProperties: { "type": "boolean" }を使用 — 機能フラグは動的なキーバリューマップのため。portに有効なTCPポート範囲に一致するmin/max制約 を設定。- ルートの
titleとdescriptionでスキーマを自己文書化。
IDEとの連携
設定ファイルに $schema プロパティを追加してIDEサポートを有効にします:
{
"$schema": "./config.schema.json",
"port": 8080
}
VS Codeやその他のエディタが参照されたスキーマを自動的に読み込み、補完とバリデーションを提供します。
ユースケース
IDE自動補完の有効化、デプロイ前の無効な設定のキャッチ、設定オプションの生きたドキュメントの作成のために、アプリケーション設定ファイルのスキーマを生成します。