Swagger 使用allOf和其他属性进行招摇过市数据验证
需要帮助使用allOf和additionalProperties:false解决模式上的虚张声势定义吗 这里是我的JSON模式 样本数据 我使用AJV 6.10.0来验证我的数据,但我认为我有一个错误的模式定义。 使用Ajv选项:Swagger 使用allOf和其他属性进行招摇过市数据验证,swagger,ajv,Swagger,Ajv,需要帮助使用allOf和additionalProperties:false解决模式上的虚张声势定义吗 这里是我的JSON模式 样本数据 我使用AJV 6.10.0来验证我的数据,但我认为我有一个错误的模式定义。 使用Ajv选项: ajv = require('ajv')({ allErrors: true, verbose: true, removeAdditional: false, })
ajv = require('ajv')({
allErrors: true,
verbose: true,
removeAdditional: false,
});
实际上,我有6个错误,它们警告每个属性的附加属性
在验证allOf name和phone中的第一个对象时,验证发现地址、邮政编码、城市和州有错误
如果我在验证地址模式期间删除了第一个allOf对象名phone的附加属性,则验证在name和phone上发现了错误
如何解决我的模式定义我已设法使其正常工作,我已将您的数据结构更新为更具逻辑性,请参见以下内容: JSON模式 { $schema:http://json-schema.org/draft-07/schema, 类型:对象, 所需:[ 传送 ], 特性:{ 交付:{ 类型:对象, 附加属性:false, 所需:[ 名称 电话 住址 ], 特性:{ 姓名:{ 类型:字符串, 最大长度:1024 }, 电话:{ 类型:字符串, 最大长度:24 }, 地址:{ $ref:/definitions/地址 } } } }, 定义:{ 地址:{ 类型:对象, 附加属性:false, 特性:{ 地址:{ 类型:字符串, 最大长度:1024 }, 后代码:{ 类型:字符串, 最大长度:12 }, 城市:{ 类型:字符串, 最大长度:512 }, 声明:{ 类型:字符串, 最大长度:512 } } } } } 样本数据 { 交付:{ 地址:{ 地址:我的地址, postalCode:mypostalCode, 城市:我的城市, 州:mystate }, 姓名:我的名字, 电话:我的电话 } } 如果您想测试它,您可以在这里进行:
delivery: {
address: 'my address',
postalCode: 'my postalCode',
city: 'my city',
state: 'my state',
name: 'my name',
phone: 'my phone'
},
ajv = require('ajv')({
allErrors: true,
verbose: true,
removeAdditional: false,
});