OpenAPI 2.0 객체의 알 수 없는 속성

표준 속성의 오타를 수정하고 지원되는 확장 형식을 사용하세요.

설명

OpenAPI 2.0 객체의 표준 속성을 잘못 쓰면 도구가 이를 거부하거나 무시해 의도한 정의가 적용되지 않을 수 있습니다. 표준 필드와 사용자 데이터 모델의 속성 이름, 허용된 x- 확장 속성을 구분해야 합니다.

잠재적 영향

  • 문서나 클라이언트 생성이 실패하거나 필요한 정보가 빠질 수 있습니다.
  • 스키마 제약을 잘못 작성하면 도구가 의도한 데이터 구조를 해석하지 못할 수 있습니다.

해결 방법

각 객체의 OpenAPI 2.0 속성 이름과 위치를 확인하고 오타를 수정하세요. 확장을 지원하는 객체의 사용자 정의 메타데이터에는 x- 접두사를 사용하세요. 스키마의 properties 아래에 정의한 데이터 필드 이름까지 표준 속성으로 바꾸지는 마세요.

예시

첫 예제는 description과 properties를 각각 descripption과 propppperties로 잘못 작성했습니다.

변경 전

json
{
  "swagger": "2.0",
  "info": {
    "title": "Simple API Overview",
    "version": "1.0.0"
  },
  "paths": {
    "/{id}": {
      "get": {
        "summary": "List API versions",
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "operationId": "listVersionsv2"
      },
      "parameters": [
        {
          "descripption": "ID of pet to use",
          "required": true,
          "type": "array",
          "items": {
            "type": "string"
          },
          "collectionFormat": "csv",
          "name": "id",
          "in": "path"
        }
      ]
    }
  },
  "definitions": {
    "ErrorModel": {
      "type": "object",
      "required": [
        "message",
        "code"
      ],
      "propppperties": {
        "message": {
          "type": "string"
        },
        "code": {
          "type": "integer",
          "minimum": 100,
          "maximum": 600
        }
      }
    }
  }
}

변경 후

json
{
  "swagger": "2.0",
  "info": {
    "title": "Simple API Overview",
    "version": "1.0.0"
  },
  "paths": {
    "/{id}": {
      "get": {
        "summary": "List API versions",
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "operationId": "listVersionsv2"
      },
      "parameters": [
        {
          "description": "ID of pet to use",
          "required": true,
          "type": "array",
          "items": {
            "type": "string"
          },
          "collectionFormat": "csv",
          "name": "id",
          "in": "path"
        }
      ]
    }
  },
  "definitions": {
    "ErrorModel": {
      "type": "object",
      "required": [
        "message",
        "code"
      ],
      "properties": {
        "message": {
          "type": "string"
        },
        "code": {
          "type": "integer",
          "minimum": 100,
          "maximum": 600
        }
      }
    }
  }
}

변경 후에는 표준 속성 이름을 정확하게 사용합니다. 필요한 확장 속성이 있다면 해당 객체에서 허용하는 확장 규칙을 따르세요.

참조