JSONスキーマジェネレーター - JSONからスキーマ仕様を自動生成
JSONスキーマは、JSONデータの構造や必須フィールド、データ型を定義・検証するための標準仕様です。バックエンドでクライアントからのリクエストデータを検証する際(Ajvなど)や、Swagger/OpenAPIの仕様書を作成する際に、手動でのスキーマ記述を大幅に効率化します。
このような場面で活用できます
- APIリクエストの自動検証: AjvやExpressなどで受信データをバリデーションするためのスキーマを瞬時に作成します。
- Swagger / OpenAPIの仕様作成: OpenAPI 3.0形式のコンポーネントスキーマ定義をサンプルJSONから逆算して作成します。
- マイクロサービス間の契約保証: メッセージキュー送受信時のペイロード構造を厳密に定義し、シリアライズエラーを防止します。
- APIテストのスキーマ検証: 自動化テストスイートで、サーバーレスポンスが期待通りのスキーマに合致しているか検証します。
使い方と実務ガイド
- サンプルJSONを入力: スキーマの雛形としたい代表的なJSONデータを入力します。
- スキーマ生成実行: フィールドの型情報や必須プロパティ、配列の定義を自動推論します。
- 生成仕様の確認: Draft-07規格に準拠したスキーマ定義(properties, requiredなど)を確認します。
- プロジェクトへ適用: 生成されたJSONスキーマをコピーし、バックエンドのバリデーションに導入します。
入出力の実務例
Input:
{
"productId": 456,
"productName": "DevToolz Pro",
"inStock": true
}
Output:
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"productId": {
"type": "integer"
},
"productName": {
"type": "string"
},
"inStock": {
"type": "boolean"
}
},
"required": [
"productId",
"productName",
"inStock"
]
}
よくある質問(FAQ)
Q. どのバージョンのJSONスキーマ標準が出力されますか?
A. OpenAPI 3.0や主要なバリデーションライブラリ(Ajvなど)で最も広く普及しているDraft-07規格で生成されます。
Q. すべてのフィールドが「required(必須)」になりますか?
A. 厳格な検証を初期値とするため、入力されたキーはrequired配列に含まれます。任意項目とする場合は該当キーを配列から削除してください。
Q. 日付やメールアドレスなどのフォーマット指定は可能ですか?
A. 生成された各プロパティに「"format": "email"」や「"format": "date-time"」を追加することで、さらに詳細なバリデーションが可能です。
技術・セキュリティ上の注意事項
- 社内APIの機密データを投入しても、サーバーへの送信は一切行われずブラウザ内で完結します。
- Node.js、Python、Go、Javaなど多様な言語の標準スキーマバリデータでそのまま利用可能です。
あわせて使える関連ツール