설명
빈 스키마 객체 {}는 값의 타입, 필드, 필수 항목 같은 제약을 정의하지 않습니다. 정해진 데이터 구조를 기대하는 곳에 빈 스키마를 사용하면 문서에 필요한 검증 기준이 빠집니다.
잠재적 영향
문서를 이용한 검증에서 의도하지 않은 구조가 허용되거나 클라이언트가 잘못된 데이터 모델을 가정할 수 있습니다.
해결 방법
실제 데이터에 필요한 type, properties, items, required 등의 제약을 정의하십시오. 임의의 구조를 의도적으로 허용하는 경우에는 그 의도를 명확히 문서화하고 필요한 제한은 처리 로직에 적용하십시오.
예시
예시는 객체 타입과 두 필드를 정의하고 message를 필수로 지정합니다. 추가 필드는 별도로 금지하지 않습니다.
변경 전
json
{
"components": {
"schemas": {
"GeneralError": {}
}
}
}
변경 후
json
{
"components": {
"schemas": {
"GeneralError": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32"
},
"message": {
"type": "string"
}
},
"required": [
"message"
]
}
}
}
}