增加requestcontext实例化
This commit is contained in:
parent
7e30b1f8b9
commit
ad874d13f6
@ -9,26 +9,42 @@ package define
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
httpclientDefine "git.zhangdeman.cn/gateway/httpclient/define"
|
|
||||||
validatorDefine "git.zhangdeman.cn/gateway/validator/define"
|
validatorDefine "git.zhangdeman.cn/gateway/validator/define"
|
||||||
"git.zhangdeman.cn/zhangdeman/trace"
|
"git.zhangdeman.cn/zhangdeman/trace"
|
||||||
"sync"
|
"sync"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// NewRequestContext 获取context实例
|
||||||
|
//
|
||||||
|
// Author : go_developer@163.com<白茶清欢>
|
||||||
|
//
|
||||||
|
// Date : 15:44 2024/11/20
|
||||||
|
func NewRequestContext(ctx context.Context, traceID string) *RequestContext {
|
||||||
|
if nil == ctx {
|
||||||
|
ctx = context.Background()
|
||||||
|
}
|
||||||
|
return &RequestContext{
|
||||||
|
ctx: ctx,
|
||||||
|
runtimeInstance: trace.NewRuntime(traceID, 1),
|
||||||
|
lock: &sync.RWMutex{},
|
||||||
|
traceID: traceID,
|
||||||
|
pluginResultTable: make(map[string][]*PluginResult),
|
||||||
|
data: make(map[string]any),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// RequestContext 请求配置
|
// RequestContext 请求配置
|
||||||
//
|
//
|
||||||
// Author : go_developer@163.com<白茶清欢>
|
// Author : go_developer@163.com<白茶清欢>
|
||||||
//
|
//
|
||||||
// Date : 17:19 2024/11/11
|
// Date : 17:19 2024/11/11
|
||||||
type RequestContext struct {
|
type RequestContext struct {
|
||||||
ctx context.Context // ctx 上下文
|
ctx context.Context // ctx 上下文
|
||||||
runtimeInstance *trace.Runtime // 链路统一追踪实例
|
runtimeInstance *trace.Runtime // 链路统一追踪实例
|
||||||
lock *sync.RWMutex // 数据锁
|
lock *sync.RWMutex // 数据锁
|
||||||
traceID string // 全链路追踪的trace_id
|
traceID string // 全链路追踪的trace_id
|
||||||
gatewayUrlConfig *ApiConfig // 网关接口的配置
|
pluginResultTable map[string][]*PluginResult // 插件执行结果记录
|
||||||
requestInfo *RequestInfo // 网关请求信息
|
data map[string]any // 自定义设置的数据
|
||||||
backendApiResultTable map[string]*httpclientDefine.Response // 后端接口返回数据详细信息: 接口别名 => 请求结果
|
|
||||||
pluginResultTable map[string][]*PluginResult // 插件执行结果记录
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// SetPluginResult 设置插件执行结果
|
// SetPluginResult 设置插件执行结果
|
||||||
|
Loading…
Reference in New Issue
Block a user