数値バリデーション — JSON Schemaで数値制約を定義
JSON Schemaで数値型のバリデーションルール(範囲、倍数、整数制約)を設定する方法を解説します。
Basic Types
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"price": {
"type": "number",
"minimum": 0
},
"quantity": {
"type": "integer",
"minimum": 1,
"maximum": 9999
},
"discount": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": ["price", "quantity"]
}Test Data
{
"price": 29.99,
"quantity": 3,
"discount": 0.15
}詳細な説明
JSON Schemaの number 型は、整数と浮動小数点数の両方を受け入れます。数値に対してさまざまな制約を適用することで、データの整合性を保証できます。
主なキーワード:
minimum/maximum: 許容される最小値・最大値を設定します。exclusiveMinimum/exclusiveMaximum: 境界値を含まない範囲指定を行います。multipleOf: 値が指定した数の倍数であることを要求します。
例えば、商品の価格フィールドに minimum: 0、maximum: 999999.99 を設定すれば、負の値や極端に大きな値を防ぐことができます。multipleOf: 0.01 を追加すれば、小数点以下2桁までの精度を強制します。
ユースケース
価格、年齢、スコアなどの数値データをバリデーションする際に使用します。APIの入力値が期待する数値範囲内であることを保証するのに役立ちます。