[英]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.