Closed WideLee closed 2 years ago
【背景】 目前在nohost里,默认使用Header x-whistle-nohost-env 与 Cookie whistle_nohost_env来判断当前所属的环境以及命中的规则,但如果将nohost用于后台多环境路由的场景上,有些框架有自己的上下文链路透传字段,而且全链路对whistle-nohost-env进行透传需要对代码的改动较大。因此希望能实现一个自定义从请求中获取环境的能力,减少对业务代码的侵入改动
x-whistle-nohost-env
whistle_nohost_env
例如trpc-go框架中,上下文链路透传是在Header里trpc-trans-info实现的,这个请求头是一个json,里边有trpc-env表示环境信息,
trpc-trans-info
trpc-env
Trpc-Trans-Info: {"traceparent":"MDAtNWM4ZjNlYWUyOTlhNDcyOTg3ZWI4NzM0YWY1NWMwMDUtMjYzY2M3OWQ2MGE4MDExOS0wMQ==","trpc-env":"d2FsbGklMkZlbnYwMQ==","x-request-id":"NWM4ZjNlYWUyOTlhNDcyOTg3ZWI4NzM0YWY1NWMwMDU="}
里边trpc-env是base64编码字符串walli%2Fenv01,希望将这个信息,用于判断匹配请求的所属的环境,从trpc-go这个case看,配置需要有json decode和base64 decode的能力
walli%2Fenv01
已处理,通过插件实现。
【背景】 目前在nohost里,默认使用Header
x-whistle-nohost-env
与 Cookiewhistle_nohost_env
来判断当前所属的环境以及命中的规则,但如果将nohost用于后台多环境路由的场景上,有些框架有自己的上下文链路透传字段,而且全链路对whistle-nohost-env进行透传需要对代码的改动较大。因此希望能实现一个自定义从请求中获取环境的能力,减少对业务代码的侵入改动例如trpc-go框架中,上下文链路透传是在Header里
trpc-trans-info
实现的,这个请求头是一个json,里边有trpc-env
表示环境信息,里边trpc-env是base64编码字符串
walli%2Fenv01
,希望将这个信息,用于判断匹配请求的所属的环境,从trpc-go这个case看,配置需要有json decode和base64 decode的能力