gateway

package module
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Jan 12, 2026 License: Apache-2.0 Imports: 26 Imported by: 1

README

framework-gateway

Go framework package for gateway.

Installation

go get github.com/go-anyway/framework-gateway@v1.0.0

Usage

See documentation for usage examples.

License

Apache License 2.0

Documentation

Index

Constants

View Source
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

func DetailedHealthCheckHandler(c *gin.Context)

DetailedHealthCheckHandler 详细健康检查处理器 检查所有依赖服务的健康状态

func HandleGatewayResponse

func HandleGatewayResponse(c *gin.Context, wrapper *responseWrapper, originalWriter gin.ResponseWriter)

HandleGatewayResponse 处理网关响应,统一包装为标准格式

func HealthCheckHandler

func HealthCheckHandler(c *gin.Context)

HealthCheckHandler 健康检查处理器(liveness probe) 用于检查应用是否存活,不检查依赖服务

func IsReady

func IsReady() bool

IsReady 检查是否就绪

func MetricsMiddleware

func MetricsMiddleware() gin.HandlerFunc

MetricsMiddleware 创建 Prometheus metrics 中间件

func NewResponseWrapper

func NewResponseWrapper(w gin.ResponseWriter) *responseWrapper

NewResponseWrapper 创建新的响应包装器

func ReadinessCheckHandler

func ReadinessCheckHandler(c *gin.Context)

ReadinessCheckHandler 就绪检查处理器(readiness probe) 用于检查应用是否准备好接收流量,可以检查依赖服务

func RegisterHealthCheckRoutes

func RegisterHealthCheckRoutes(router *gin.Engine)

RegisterHealthCheckRoutes 注册健康检查路由

func SetReady

func SetReady(ready bool)

SetReady 设置就绪状态

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 NewGatewayHandler

func NewGatewayHandler() *GatewayHandler

NewGatewayHandler 创建新的网关处理器

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 标准响应结构

Jump to

Keyboard shortcuts

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