Я знаю, что этот вопрос всплывает довольно часто, и я пытался исследовать проблему перед публикацией, но все еще не знаю, чего мне не хватает
У меня есть схема с вложенными объектами. Моя схема ожидает, что свойство company
будет объектом. У этого объекта есть обязательные свойства, но они игнорируются. Почему он игнорирует обязательные свойства?
Схема:
{
'business_type': {
'type': 'string',
"enum": ['company', 'non_profit']
},
'email': {
'type': 'string'
},
'company': {
'type': 'object',
'properties': {
'address': {
'type': 'object',
'properties': {
'city': {
'type': 'string',
},
'country': {
'type': 'string',
'enum': ['US']
},
'line1': {
'type': 'string'
},
'line2': {
'type': 'string'
},
'postal_code': {
'type': 'string'
},
'state': {
'type': 'string'
}
},
'required': ['city', 'country', 'line1', 'postal_code', 'state'],
},
'name': {
'type': 'string'
},
'phone': {
'type': 'string'
}
},
'required': ['address', 'name', 'phone'],
},
'required' : ['business_type', 'email', 'company']
}
Пример объекта, который не вызывает ошибку, но должен, потому что отсутствует свойство телефона
{
"business_type": "company",
"email": "email@email.com",
"company": {
"address": {
"city": "city",
"country": "US",
"line1": "line1",
"line2": "line2",
"postal_code": "00000",
"state": "AZ"
},
"name": "name"
}
}
проверка корректно работает, если отсутствует пропущенный бизнес-тип, электронная почта или компания, поэтому она не проверяет вложенную структуру.
Полагаю, я что-то упускаю, просто не знаю, что это, я с видом