説明
空のSchema Object {}は、型、フィールド、必須項目などの制約を定義しません。決まった構造を想定する場所で使用すると、文書に必要な検証基準がなくなります。
想定される影響
文書に基づく検証で意図しない構造が許容されたり、クライアントが誤ったデータモデルを想定したりする可能性があります。
対処方法
実際のデータに必要なtype、properties、items、requiredなどの制約を定義してください。任意の構造を意図的に許容する場合は、その目的を明記し、必要な制限を実装に適用します。
例
この例では、オブジェクト型と2つのフィールドを定義し、messageを必須にしています。追加フィールドは別途禁止していません。
変更前
json
{
"components": {
"schemas": {
"GeneralError": {}
}
}
}
変更後
json
{
"components": {
"schemas": {
"GeneralError": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32"
},
"message": {
"type": "string"
}
},
"required": [
"message"
]
}
}
}
}