Documentation
¶
Index ¶
- Constants
- func BearerAuth(validate TokenValidator) gin.HandlerFunc
- func BearerAuthWithKey(validate TokenValidator, userIDKey string) gin.HandlerFunc
- func CORS(cfg CORSConfig) gin.HandlerFunc
- func GetUserID(c *gin.Context) (uint64, bool)
- func GetUserIDWithKey(c *gin.Context, key string) (uint64, bool)
- func Idempotent(cfg IdempotentConfig) gin.HandlerFunc
- func Logging(log logger.Logger) gin.HandlerFunc
- func RateLimiter(cfg RateLimiterConfig) gin.HandlerFunc
- func Recovery(log logger.Logger) gin.HandlerFunc
- func RequestID() gin.HandlerFunc
- func Timeout(timeout time.Duration) gin.HandlerFunc
- func Tracing(cfg TracingConfig) gin.HandlerFunc
- type CORSConfig
- type IdempotentConfig
- type Metrics
- type RateLimiterConfig
- type TokenValidator
- type TracingConfig
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 GetUserIDWithKey ¶
GetUserIDWithKey 从 Gin 上下文获取用户 ID(自定义 key)
Types ¶
type CORSConfig ¶
type CORSConfig struct {
AllowOrigins []string
AllowMethods []string
AllowHeaders []string
ExposeHeaders []string
AllowCredentials bool
MaxAge int
}
CORSConfig 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 指标
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 ¶
TokenValidator Token 验证函数
type TracingConfig ¶
type TracingConfig struct {
ServiceName string
SkipPaths []string // 跳过追踪的路径
SpanNameFunc func(*gin.Context) string
TracerProvider trace.TracerProvider
}
TracingConfig 追踪配置
Click to show internal directories.
Click to hide internal directories.