【问题标题】:Hapi-Swagger failing with header valueHapi-Swagger 因标头值而失败
【发布时间】:2018-04-23 10:03:37
【问题描述】:

我在我们的应用程序中使用 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”,

“joi”:“13.1.2”,

【问题讨论】:

    标签: node.js swagger-ui hapijs hapi-swagger


    【解决方案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 处理程序 (https://github.com/hapijs/hapi/issues/3706)。

    【讨论】:

      猜你喜欢
      • 2016-02-14
      • 2015-02-15
      • 1970-01-01
      • 2019-07-20
      • 2021-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多