Skip to content

core.ExecutionContext

概览

core.ExecutionContext 是拦截器、解析器与管道使用的公共运行时上下文。它适用于 HTTP、消息消费者和 WebSocket。

go
type ExecutionContext interface {
    Context() context.Context
    EventBus() eventbus.EventBus
    Method() string
    Path() string
    Header(key string) string
    Params() map[string]string
    PathKeys() []string
    Queries() url.Values
    Set(key string, value any)
    Get(key string) (any, bool)
}

方法

  • Context():获取 Go 上下文。
  • EventBus():访问事件发布能力。
  • Method()Path()Header():读取 HTTP 请求信息。
  • Params()PathKeys()Queries():读取路径与查询参数。
  • Set()Get():在同一次执行内共享数据。

专用接口

HttpRequestContext 额外支持 ParamQueryBindMultipartFormConsumerRequestContext 提供事件名称和负载;WebSocketContext 提供连接 ID、消息类型与负载。

示例

go
func (i *LoggingInterceptor) PreHandle(ctx core.ExecutionContext, _ core.HandlerMeta) error {
    log.Printf("%s %s", ctx.Method(), ctx.Path())
    return nil
}

仅在拦截器和参数解析器中使用协议细节;控制器保持面向用例的签名。