如何通过Kong API网关补全上游缺失HTTP头?是否有声明式插件?
针对上游请求添加缺失HTTP头的解决方案
一、无需Lua脚本的声明式方案:Request Transformer插件
Kong内置的Request Transformer插件专门用于修改请求头、参数等内容,完全不需要编写Lua脚本,纯声明式配置就能实现你的需求。当上游请求缺失X-Foo-Bar头时自动补充默认值的配置如下:
plugins: - name: request-transformer config: add: headers: X-Foo-Bar: some_hardcoded_default
这个配置的逻辑很直接:如果请求中不存在X-Foo-Bar头,插件会自动添加该头并设置为指定的默认值;如果请求已经携带这个头,则不会进行任何修改,完全匹配你的需求。
二、简化原Post-Function脚本(若需保留Lua方案)
如果不想更换插件,也可以把原Lua脚本精简为一行代码:
plugins: - name: post-function config: access: - | kong.service.request.set_header("X-Foo-Bar", kong.request.get_header("X-Foo-Bar") or "some_hardcoded_default")
借助Lua的or短路特性,一行代码就完成了“存在原头值则使用原值,不存在则使用默认值”的逻辑,比原写法更简洁。
内容的提问来源于stack exchange,提问作者Danilo Piazzalunga
相关产品推荐
相关产品推荐

