middleware

package
v1.0.3 Latest Latest
Warning

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

Go to latest
Published: Apr 28, 2026 License: Apache-2.0 Imports: 19 Imported by: 0

Documentation

Overview

定义多个 gin 中间件

Index

Constants

View Source
const UsernameKey = "username"

UsernameKey 定义了在 gin 上下文中表示密钥所有者的键

View Source
const (

	// XRequestIDKey 定义 X-Request-ID 键字符串
	XRequestIDKey = "X-Request-ID"
)

Variables

View Source
var ErrLimitExceeded = errors.New("Limit exceeded")

ErrLimitExceeded 定义了限制超出错误

View Source
var Middlewares = defaultMiddlewares()

Middlewares store registered middlewares. 存储注册的中间件

Functions

func APILogger

func APILogger() gin.HandlerFunc

APILogger 详细 API 日志中间件

func APILoggerWithConfig

func APILoggerWithConfig(config APILoggerConfig) gin.HandlerFunc

APILoggerWithConfig 带配置的 API 日志中间件

func Context

func Context() gin.HandlerFunc

Context 是一个中间件,将公共前缀字段注入到 gin.Context 中

func Limit

func Limit(maxEventsPerSec float64, maxBurstSize int) gin.HandlerFunc

Limit 如果达到限制,则丢弃(HTTP 状态 429)请求

func NoCache

func NoCache(c *gin.Context)

NoCache 是一个中间件函数,用于添加头信息,防止客户端缓存 HTTP 响应

func Options

func Options(c *gin.Context)

Options 是一个中间件函数,用于添加头信息,处理 OPTIONS 请求,并中止中间件链和结束请求 注意:生产环境若前有 Nginx/CORS,勿在此处再写 Access-Control-Allow-Origin,否则会与网关叠成「多值」导致浏览器报错。

func Secure

func Secure(c *gin.Context)

Secure 是一个中间件函数,用于添加安全头信息和资源访问头信息 不在此设置 CORS:由前置 Nginx(如 iam.fangcunmount.cn.conf 的 map + add_header)统一出 Allow-Origin,避免与 Gin 重复。

func StreamClientLoggingInterceptor

func StreamClientLoggingInterceptor() grpc.StreamClientInterceptor

StreamClientLoggingInterceptor gRPC流式客户端日志拦截器

func StreamClientLoggingInterceptorWithConfig

func StreamClientLoggingInterceptorWithConfig(config GRPCLoggerConfig) grpc.StreamClientInterceptor

StreamClientLoggingInterceptorWithConfig 带配置的gRPC流式客户端日志拦截器

func StreamServerLoggingInterceptor

func StreamServerLoggingInterceptor() grpc.StreamServerInterceptor

StreamServerLoggingInterceptor gRPC 流式服务端日志拦截器

func StreamServerLoggingInterceptorWithConfig

func StreamServerLoggingInterceptorWithConfig(config GRPCServerLoggerConfig) grpc.StreamServerInterceptor

StreamServerLoggingInterceptorWithConfig 带配置的 gRPC 流式服务端日志拦截器

func Tracing

func Tracing() gin.HandlerFunc

Tracing 注入 trace_id/span_id/request_id 到请求上下文,便于链路追踪

func UnaryClientLoggingInterceptor

func UnaryClientLoggingInterceptor() grpc.UnaryClientInterceptor

UnaryClientLoggingInterceptor gRPC一元客户端日志拦截器

func UnaryClientLoggingInterceptorWithConfig

func UnaryClientLoggingInterceptorWithConfig(config GRPCLoggerConfig) grpc.UnaryClientInterceptor

UnaryClientLoggingInterceptorWithConfig 带配置的gRPC一元客户端日志拦截器

func UnaryServerLoggingInterceptor

func UnaryServerLoggingInterceptor() grpc.UnaryServerInterceptor

UnaryServerLoggingInterceptor gRPC 一元服务端日志拦截器

func UnaryServerLoggingInterceptorWithConfig

func UnaryServerLoggingInterceptorWithConfig(config GRPCServerLoggerConfig) grpc.UnaryServerInterceptor

UnaryServerLoggingInterceptorWithConfig 带配置的 gRPC 一元服务端日志拦截器

Types

type APILoggerConfig

type APILoggerConfig struct {
	Tag                string
	SkipPaths          []string
	LogRequestHeaders  bool
	LogRequestBody     bool
	LogResponseHeaders bool
	LogResponseBody    bool
	MaskSensitiveData  bool
	MaxBodyBytes       int64
}

APILoggerConfig 定义 API 日志中间件的可配置项

func DefaultAPILoggerConfig

func DefaultAPILoggerConfig() APILoggerConfig

DefaultAPILoggerConfig 返回默认配置

type GRPCLoggerConfig

type GRPCLoggerConfig struct {
	// LogRequestPayload 是否记录请求载荷
	LogRequestPayload bool
	// LogResponsePayload 是否记录响应载荷
	LogResponsePayload bool
	// LogLevel 日志级别,0=INFO, 1=DEBUG
	LogLevel int
	// MaxPayloadSize 最大记录的载荷大小
	MaxPayloadSize int
}

GRPCLoggerConfig gRPC日志配置

func DefaultGRPCLoggerConfig

func DefaultGRPCLoggerConfig() GRPCLoggerConfig

DefaultGRPCLoggerConfig 默认gRPC日志配置

type GRPCServerLoggerConfig

type GRPCServerLoggerConfig struct {
	// LogRequestPayload 是否记录请求载荷
	LogRequestPayload bool
	// LogResponsePayload 是否记录响应载荷
	LogResponsePayload bool
	// MaxPayloadSize 最大记录的载荷大小
	MaxPayloadSize int
	// SkipMethods 跳过日志记录的方法列表
	SkipMethods []string
}

GRPCServerLoggerConfig gRPC 服务端日志配置

func DefaultGRPCServerLoggerConfig

func DefaultGRPCServerLoggerConfig() GRPCServerLoggerConfig

DefaultGRPCServerLoggerConfig 默认 gRPC 服务端日志配置

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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