[英]Array of objects with different schemas - JOI
我的应用程序上目前有以下架构:
Joi.object().keys({
users: Joi.array().items(mySchema)
})
所以我可以获取一组用户并验证他们。 但是现在我需要为每个对象使用不同的模式。
有没有办法我可以做这样的事情:
Joi.object().keys({
users: [
Joi.object().keys(mySchemaForUserOne),
Joi.object().keys(mySchemaForUserTwo),
// ...
]
})
给你~
Joi.object().keys({
users: Joi.array().items(
Joi.alternatives()
.conditional('.type', {
switch: [{
is: 'mySchemaForUserOne',
then: Joi.object({ ... }),
}, {
is: 'mySchemaForUserTwo',
then: Joi.object({ ... }),
}],
})
)
})
您可以在此处查看文档 => Joi 条件 API
您可以通过列出所有允许的类型来使用array.items
。 如果给定类型是.required()
则数组中必须有匹配项: joi API 参考
users: Joi.array().items(Joi.object().keys(mySchemaForUserOne).required(),
Joi.object().keys(mySchemaForUserTwo).required(),
// ...)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.