설명
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
}
}
}
}
}
변경 후에는 표준 속성 이름을 정확하게 사용합니다. 필요한 확장 속성이 있다면 해당 객체에서 허용하는 확장 규칙을 따르세요.