整数の範囲制約 — JSON Schemaでinteger型を検証
JSON Schemaで整数型の値に最小値・最大値の範囲制約を設定する方法を解説します。
Number Constraints
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"port": {
"type": "integer",
"minimum": 1,
"maximum": 65535
},
"httpStatusCode": {
"type": "integer",
"minimum": 100,
"maximum": 599
},
"priority": {
"type": "integer",
"minimum": 0,
"maximum": 10
}
},
"required": ["port"]
}Test Data
{
"port": 8080,
"httpStatusCode": 200,
"priority": 5
}詳細な説明
JSON Schemaの integer 型は number 型のサブタイプで、小数部を持たない数値のみを受け入れます。minimum と maximum を組み合わせることで、整数値の有効範囲を定義できます。
number 型との違い:
integer:1、42、-10は有効。1.5、3.14は無効。number: 整数も浮動小数点数も両方有効。
範囲指定の例:
{
"type": "integer",
"minimum": 1,
"maximum": 100
}
このスキーマは1から100までの整数のみを許可します。ポート番号(minimum: 0, maximum: 65535)、HTTPステータスコード(minimum: 100, maximum: 599)、ページネーションのページ番号(minimum: 1)など、多くのユースケースで活用できます。
ユースケース
年齢、ページ番号、ポート番号、数量など、特定の範囲内の整数値をバリデーションする際に使用します。