説明
数値スキーマの minimum は下限、maximum は上限です。minimum が maximum より大きいと、条件を満たす数値はありません。文字列の minLength と maxLength、配列の minItems と maxItems も同じ矛盾がないか確認する必要があります。
想定される影響
- 本来は適切なデータでも、範囲の制約に違反する場合があります。
- クライアントとサーバーが誤った範囲を実装し、連携エラーにつながる可能性があります。
対処方法
各最小値が対応する最大値以下になるよう、実際の業務上の制約に合わせて修正してください。数値の両端が等しい場合は、exclusiveMinimum や exclusiveMaximum がその値を除外していないかも確認してください。
例
OpenAPI 3.0 の数値スキーマの抜粋です。info と paths は省略しています。変更前は code に 3 以上かつ 1 以下の整数を要求しています。
変更前
json
{
"openapi": "3.0.0",
"components": {
"schemas": {
"GeneralError": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"minimum": 3,
"maximum": 1
}
}
}
}
}
}
変更後
json
{
"openapi": "3.0.0",
"components": {
"schemas": {
"GeneralError": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"minimum": 0,
"maximum": 50
}
}
}
}
}
}
変更後は 0 から 50 までの整数を許可します。この範囲は例示であり、実際のコード値の仕様に合わせて設定してください。