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).

Другие вопросы по тегам