Hapi-Swagger не работает со значением заголовка
Я использую hapi-swagger в нашем приложении, где один из API пытается использовать пользовательский заголовок, но когда я вызываю этот API с пользовательским заголовком, появляется ошибка ниже
{
"statusCode": 400,
"error": "Bad Request",
"message": "Invalid request headers input"
}
Ниже API, где я использую заголовки с валидатором.
{
method: 'POST',
path: '/v1/testapi',
config: {
description: 'Greet user',
notes: ['Use to greet a user'],
tags: ['api'],
handler: function ( request, h ) {
console.log('sending response...');
return h.response('OK');
},
validate: {
headers: {
name: Joi.string().required()
}
}
}
}
Ниже приведены версии, которые мы используем.
"хапи": "17.2.2",
"hapi-swagger": "9.1.1",
"Джой": "13.1.2",
1 ответ
Я столкнулся с этим недавно. Вам нужно использовать allowUnknown
опция проверки для разрешения неизвестных заголовков ( https://github.com/hapijs/hapi/issues/2407).
validate: {
headers: Joi.object({
name: Joi.string().required()
}).options({ allowUnknown: true })
}
Также обратите внимание, что hapi 17 изменил поведение по умолчанию для сообщения об ошибках проверки. Если вы хотите регистрировать или возвращать фактическую ошибку, указывающую, какие заголовки не проходят проверку, а не общий "Плохой запрос", вы можете добавить пользовательский failAction
Hander ( https://github.com/hapijs/hapi/issues/3706).