Мне нужна схема для запроса, в которой, если присутствует id
, любые другие параметры, которые могут присутствовать, игнорируются. Однако, если id
отсутствует, применяются условия проверки, в которых некоторые параметры равны required
. Другими словами, примерно так
query: {
id: Joi.number()
.description("record id. All other query params are ignored if id is provided.")
.integer()
.positive()
.optional(),
everythingElse: {
foo: Joi.string()
.required(),
bar: Joi.string()
.required(),
baz: Joi.string()
.optional(),
qux: Joi.string()
.optional()
}
}
Возможно ли вышеперечисленное? Читая синтаксис Joi
, кажется, мне придется добавить предложение when('id', {is: Joi.number().positive().integer(), then: Joi.optional(), otherwise: Joi.required() })
в каждое определение каждого обязательного параметра.
everythingElse
. Вы хотите, чтобы это было только из параметра запроса или может быть получено из полезной нагрузки? - person Rahul Patil   schedule 15.02.2019