숫자 최솟값 미정의 (OpenAPI 3.0)

하한이 필요한 숫자 필드에 minimum 제약이 없는 경우

설명

음수를 허용하지 않는 수량처럼 하한이 필요한 숫자 필드에 minimum 또는 동등한 제약이 없으면, 허용 범위보다 작은 값도 스키마를 통과할 수 있습니다.

잠재적 영향

서버도 하한을 검증하지 않으면 유효하지 않은 값이 계산이나 업무 처리 오류를 일으킬 수 있습니다.

해결 방법

필드의 실제 용도에 맞는 minimum을 정의하고 서버 검증과 일치시키세요. 음수가 유효한 필드까지 일괄적으로 0 이상으로 제한하지 마세요.

예시

다음 OpenAPI 3.0 발췌 예시는 code가 음수가 될 수 없다는 조건을 minimum: 0으로 명시합니다.

변경 전

json
{
  "openapi": "3.0.0",
  "components": {
    "schemas": {
      "GeneralError": {
        "type": "object",
        "properties": {
          "code": {
            "type": "integer",
            "format": "int32"
          }
        }
      }
    }
  }
}

변경 후

json
{
  "openapi": "3.0.0",
  "components": {
    "schemas": {
      "GeneralError": {
        "type": "object",
        "properties": {
          "code": {
            "type": "integer",
            "format": "int32",
            "minimum": 0
          }
        }
      }
    }
  }
}

참조