http

package
v0.0.3 Latest Latest
Warning

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

Go to latest
Published: Dec 3, 2025 License: Apache-2.0 Imports: 24 Imported by: 0

Documentation

Index

Constants

View Source
const (
	HeaderIdempotencyKey = "X-Idempotency-Key"
	HeaderIdempotentHit  = "X-Idempotent-Hit"
)
View Source
const (
	HeaderRequestID = "X-Request-ID"
	HeaderTraceID   = "X-Trace-ID"
)

Variables

This section is empty.

Functions

func BearerAuth

func BearerAuth(validate TokenValidator) gin.HandlerFunc

BearerAuth Bearer Token 认证中间件

func BearerAuthWithKey

func BearerAuthWithKey(validate TokenValidator, userIDKey string) gin.HandlerFunc

BearerAuthWithKey Bearer Token 认证中间件(自定义 key)

func CORS

func CORS(cfg CORSConfig) gin.HandlerFunc

CORS 跨域中间件

func GetUserID

func GetUserID(c *gin.Context) (uint64, bool)

GetUserID 从 Gin 上下文获取用户 ID

func GetUserIDWithKey

func GetUserIDWithKey(c *gin.Context, key string) (uint64, bool)

GetUserIDWithKey 从 Gin 上下文获取用户 ID(自定义 key)

func Idempotent

func Idempotent(cfg IdempotentConfig) gin.HandlerFunc

Idempotent 幂等中间件

func Logging

func Logging(log logger.Logger) gin.HandlerFunc

Logging 日志中间件

func RateLimiter

func RateLimiter(cfg RateLimiterConfig) gin.HandlerFunc

RateLimiter 限流中间件

func Recovery

func Recovery(log logger.Logger) gin.HandlerFunc

Recovery panic 恢复中间件

func RequestID

func RequestID() gin.HandlerFunc

RequestID 请求 ID 中间件

func Timeout

func Timeout(timeout time.Duration) gin.HandlerFunc

Timeout 超时中间件

func Tracing

func Tracing(cfg TracingConfig) gin.HandlerFunc

Tracing 追踪中间件

Types

type CORSConfig

type CORSConfig struct {
	AllowOrigins     []string
	AllowMethods     []string
	AllowHeaders     []string
	ExposeHeaders    []string
	AllowCredentials bool
	MaxAge           int
}

CORSConfig CORS 配置

func DefaultCORSConfig

func DefaultCORSConfig() CORSConfig

DefaultCORSConfig 默认 CORS 配置

type IdempotentConfig

type IdempotentConfig struct {
	Handler          *idempotent.Handler
	Methods          []string // 需要幂等的方法,默认 POST, PUT, PATCH
	KeyFunc          func(*gin.Context) string
	CheckFingerprint bool
}

IdempotentConfig 幂等中间件配置

func DefaultIdempotentConfig

func DefaultIdempotentConfig(h *idempotent.Handler) IdempotentConfig

DefaultIdempotentConfig 默认配置

type Metrics

type Metrics struct {
	RequestsTotal   observability.Counter
	RequestDuration observability.Histogram
	RequestSize     observability.Histogram
	ResponseSize    observability.Histogram
	ActiveRequests  observability.Gauge
}

Metrics HTTP 指标

func NewMetrics

func NewMetrics(p observability.MetricsProvider) *Metrics

NewMetrics 创建 HTTP 指标

func (*Metrics) Middleware

func (m *Metrics) Middleware() gin.HandlerFunc

Middleware 返回 Gin 指标中间件

type RateLimiterConfig

type RateLimiterConfig struct {
	Rate        rate.Limit                // 每秒请求数
	Burst       int                       // 突发容量
	KeyFunc     func(*gin.Context) string // 限流键函数
	ExcludeFunc func(*gin.Context) bool   // 排除函数
}

RateLimiter 限流器配置

func DefaultRateLimiterConfig

func DefaultRateLimiterConfig() RateLimiterConfig

DefaultRateLimiterConfig 默认配置

type TokenValidator

type TokenValidator func(ctx context.Context, token string) (userID uint64, err error)

TokenValidator Token 验证函数

type TracingConfig

type TracingConfig struct {
	ServiceName    string
	SkipPaths      []string // 跳过追踪的路径
	SpanNameFunc   func(*gin.Context) string
	TracerProvider trace.TracerProvider
}

TracingConfig 追踪配置

func DefaultTracingConfig

func DefaultTracingConfig() TracingConfig

DefaultTracingConfig 默认配置

Jump to

Keyboard shortcuts

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