Ошибка 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()
                }
            }                               
        }
    }

Ниже приведены версии, которые мы используем.

"hapi": "17.2.2",

"hapi-swagger": "9.1.1",

"дзёи": "13.1.2",


person ppb    schedule 14.03.2018    source источник


Ответы (1)


Я столкнулся с этим недавно. Вам необходимо использовать параметр проверки allowUnknown, чтобы разрешить неизвестные заголовки (https://github.com/hapijs/hapi/issues/2407#issuecomment-74218465).

validate: {
    headers: Joi.object({
        name: Joi.string().required()
    }).options({ allowUnknown: true })
}

Также обратите внимание, что hapi 17 изменил поведение по умолчанию для сообщения об ошибках проверки. Если вы хотите регистрировать или возвращать фактическую ошибку, указывающую, какие заголовки не проходят проверку, а не общий «Плохой запрос», вы можете добавить собственный failAction hander (https://github.com/hapijs/hapi/issues/3706).

person Ryan    schedule 23.04.2018