middleware

package
v0.2.1 Latest Latest
Warning

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

Go to latest
Published: Aug 20, 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