Documentation
¶
Index ¶
- Constants
- func BusinessRateLimitMiddleware(manager ratelimit.RateLimitManager) gin.HandlerFunc
- func BusinessRateLimitMiddlewareWithFunc(getManager func() ratelimit.RateLimitManager) gin.HandlerFunc
- func CORSMiddleware(allowedOrigins []string) gin.HandlerFunc
- func CustomHTTPError(w http.ResponseWriter, r *http.Request, err error)
- func DefaultCORSMiddleware() gin.HandlerFunc
- func DefaultSizeLimitMiddleware() gin.HandlerFunc
- func DefaultTimeoutMiddleware() gin.HandlerFunc
- func DetailedHealthCheckHandler(c *gin.Context)
- func HandleGatewayResponse(c *gin.Context, wrapper *responseWrapper, originalWriter gin.ResponseWriter)
- func HealthCheckHandler(c *gin.Context)
- func IsReady() bool
- func MetricsMiddleware() gin.HandlerFunc
- func NewResponseWrapper(w gin.ResponseWriter) *responseWrapper
- func ReadinessCheckHandler(c *gin.Context)
- func RegisterHealthCheckRoutes(router *gin.Engine)
- func SetReady(ready bool)
- func SizeLimitMiddleware(maxSize int64) gin.HandlerFunc
- func TimeoutMiddleware(timeout time.Duration) gin.HandlerFunc
- func TraceMiddleware() gin.HandlerFunc
- type GatewayHandler
- type HealthCheckResponse
- type StandardResponse
Constants ¶
const ( // HTTP 头中的 traceID 和 requestID 字段名 HeaderTraceID = "X-Trace-ID" HeaderRequestID = "X-Request-ID" )
Variables ¶
This section is empty.
Functions ¶
func BusinessRateLimitMiddleware ¶
func BusinessRateLimitMiddleware(manager ratelimit.RateLimitManager) gin.HandlerFunc
BusinessRateLimitMiddleware 创建业务限流中间件
func BusinessRateLimitMiddlewareWithFunc ¶
func BusinessRateLimitMiddlewareWithFunc(getManager func() ratelimit.RateLimitManager) gin.HandlerFunc
BusinessRateLimitMiddlewareWithFunc 创建业务限流中间件(通过函数动态获取管理器)
func CORSMiddleware ¶
func CORSMiddleware(allowedOrigins []string) gin.HandlerFunc
CORSMiddleware 创建 CORS 中间件
func CustomHTTPError ¶
func CustomHTTPError(w http.ResponseWriter, r *http.Request, err error)
CustomHTTPError 自定义错误处理
func DefaultCORSMiddleware ¶
func DefaultCORSMiddleware() gin.HandlerFunc
DefaultCORSMiddleware 创建默认 CORS 中间件(允许所有源)
func DefaultSizeLimitMiddleware ¶
func DefaultSizeLimitMiddleware() gin.HandlerFunc
DefaultSizeLimitMiddleware 创建默认大小限制中间件(10MB)
func DefaultTimeoutMiddleware ¶
func DefaultTimeoutMiddleware() gin.HandlerFunc
DefaultTimeoutMiddleware 创建默认超时中间件(30秒)
func DetailedHealthCheckHandler ¶
DetailedHealthCheckHandler 详细健康检查处理器 检查所有依赖服务的健康状态
func HandleGatewayResponse ¶
func HandleGatewayResponse(c *gin.Context, wrapper *responseWrapper, originalWriter gin.ResponseWriter)
HandleGatewayResponse 处理网关响应,统一包装为标准格式
func HealthCheckHandler ¶
HealthCheckHandler 健康检查处理器(liveness probe) 用于检查应用是否存活,不检查依赖服务
func MetricsMiddleware ¶
func MetricsMiddleware() gin.HandlerFunc
MetricsMiddleware 创建 Prometheus metrics 中间件
func NewResponseWrapper ¶
func NewResponseWrapper(w gin.ResponseWriter) *responseWrapper
NewResponseWrapper 创建新的响应包装器
func ReadinessCheckHandler ¶
ReadinessCheckHandler 就绪检查处理器(readiness probe) 用于检查应用是否准备好接收流量,可以检查依赖服务
func RegisterHealthCheckRoutes ¶
RegisterHealthCheckRoutes 注册健康检查路由
func SizeLimitMiddleware ¶
func SizeLimitMiddleware(maxSize int64) gin.HandlerFunc
SizeLimitMiddleware 创建请求体大小限制中间件 maxSize: 最大请求体大小(字节),例如 10 * 1024 * 1024 表示 10MB
func TimeoutMiddleware ¶
func TimeoutMiddleware(timeout time.Duration) gin.HandlerFunc
TimeoutMiddleware 创建请求超时中间件
func TraceMiddleware ¶
func TraceMiddleware() gin.HandlerFunc
TraceMiddleware 创建追踪中间件(增强版,支持 OpenTelemetry)
Types ¶
type GatewayHandler ¶
type GatewayHandler struct {
// contains filtered or unexported fields
}
GatewayHandler 网关处理器配置
func (*GatewayHandler) GinHandler ¶
func (h *GatewayHandler) GinHandler() gin.HandlerFunc
GinHandler 返回 Gin 处理器
func (*GatewayHandler) Mux ¶
func (h *GatewayHandler) Mux() *runtime.ServeMux
Mux 返回底层的 ServeMux(用于直接注册服务)
func (*GatewayHandler) RegisterService ¶
func (h *GatewayHandler) RegisterService(ctx context.Context, grpcAddr string, registerFunc func(context.Context, *runtime.ServeMux, string, []grpc.DialOption) error, opts ...grpc.DialOption) error
RegisterService 注册 gRPC 服务到网关
type HealthCheckResponse ¶
type HealthCheckResponse struct {
Status string `json:"status"`
Timestamp string `json:"timestamp"`
Checks map[string]string `json:"checks,omitempty"`
}
HealthCheckResponse 健康检查响应
type StandardResponse ¶
type StandardResponse struct {
Code int32 `json:"code"`
Msg string `json:"msg"`
Data interface{} `json:"data,omitempty"`
RequestID string `json:"request_id,omitempty"` // 请求ID,方便排查问题
}
StandardResponse 标准响应结构