Help us shape the future of Go! Take the 2026 Go Developer Survey

middleware

package
v0.3.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 3, 2026 License: MIT Imports: 4 Imported by: 0

Documentation

Overview

Package middleware provides HTTP metadata propagation middleware. Implements MetadataCarrier interface for HTTP headers. Supports automatic extraction and injection across HTTP boundaries.

中间件包提供 HTTP 元数据传播中间件。 为 HTTP headers 实现 MetadataCarrier 接口。 支持跨 HTTP 边界的自动提取和注入。

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ExtractFromGinContext

func ExtractFromGinContext(ctx *gin.Context) transportcontract.Metadata

func GetFromContext

func GetFromContext(ctx context.Context) (transportcontract.Metadata, bool)

func GetHeaderValue

func GetHeaderValue(ctx context.Context, key string) string

func InjectToGinContext

func InjectToGinContext(ctx *gin.Context, md transportcontract.Metadata)

func MetadataMiddleware

MetadataMiddleware creates HTTP middleware for metadata extraction. Core logic: Extract metadata from request headers, inject into context.

MetadataMiddleware 创建 HTTP 中间件,用于提取元数据。 核心逻辑:从请求头提取元数据、注入到 context。

Types

type HeaderCarrier

type HeaderCarrier struct {
	// contains filtered or unexported fields
}

HeaderCarrier wraps http.Header to implement MetadataCarrier interface. Core logic: Delegate Get/Set/Add operations to underlying http.Header.

HeaderCarrier 包装 http.Header,实现 MetadataCarrier 接口。 核心逻辑:将 Get/Set/Add 操作委托给底层 http.Header。

func NewHeaderCarrier

func NewHeaderCarrier(h http.Header) *HeaderCarrier

NewHeaderCarrier creates a new HeaderCarrier with http.Header. Core logic: Wrap http.Header in carrier.

NewHeaderCarrier 创建新的 HeaderCarrier,携带 http.Header。 核心逻辑:将 http.Header 包装为 carrier。

func (*HeaderCarrier) Add

func (c *HeaderCarrier) Add(key, value string)

func (*HeaderCarrier) Get

func (c *HeaderCarrier) Get(key string) string

func (*HeaderCarrier) Keys

func (c *HeaderCarrier) Keys() []string

func (*HeaderCarrier) Set

func (c *HeaderCarrier) Set(key, value string)

func (*HeaderCarrier) Values

func (c *HeaderCarrier) Values(key string) []string

type MetadataInjector

type MetadataInjector struct {
	// contains filtered or unexported fields
}

MetadataInjector injects metadata into HTTP requests. Core logic: Use propagator to inject metadata into request headers.

MetadataInjector 将元数据注入 HTTP 请求。 核心逻辑:使用 propagator 将元数据注入到请求头。

func NewMetadataInjector

func NewMetadataInjector(propagator transportcontract.MetadataPropagator) *MetadataInjector

NewMetadataInjector creates a new metadata injector with propagator. Core logic: Store propagator for later injection.

NewMetadataInjector 创建新的元数据注入器,携带 propagator。 核心逻辑:存储 propagator 用于后续注入。

func (*MetadataInjector) Inject

func (i *MetadataInjector) Inject(req *http.Request)

Inject injects metadata into HTTP request headers. Core logic: Create carrier from headers, call propagator.Inject.

Inject 将元数据注入 HTTP 请求头。 核心逻辑:从 headers 创建 carrier、调用 propagator.Inject。

Directories

Path Synopsis
Package grpc provides gRPC metadata propagation middleware.
Package grpc provides gRPC metadata propagation middleware.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL