Documentation
¶
Index ¶
- func CORSMiddleware() gin.HandlerFunc
- func ContextFromGin(c *gin.Context) context.Context
- func DefaultHealthHandler() gin.HandlerFunc
- func GetRequestID(c *gin.Context) string
- func GetTraceID(c *gin.Context) string
- func HealthHandlerWithManager(manager *HealthCheckManager) gin.HandlerFunc
- func RequestIDMiddleware() gin.HandlerFunc
- func TraceIDMiddleware() gin.HandlerFunc
- type Config
- type CustomHealthChecker
- type DatabaseHealthChecker
- type HTTPHealthChecker
- type HealthCheckManager
- type HealthChecker
- type HealthStatus
- type Server
- func (s *Server) Addr() string
- func (s *Server) Any(relativePath string, handlers ...gin.HandlerFunc)
- func (s *Server) DELETE(relativePath string, handlers ...gin.HandlerFunc)
- func (s *Server) EnableHealthCheck()
- func (s *Server) EnableHealthCheckWithManager(manager *HealthCheckManager)
- func (s *Server) Engine() *gin.Engine
- func (s *Server) GET(relativePath string, handlers ...gin.HandlerFunc)
- func (s *Server) GetHealthCheckPath() string
- func (s *Server) Group(relativePath string, handlers ...gin.HandlerFunc) *gin.RouterGroup
- func (s *Server) HEAD(relativePath string, handlers ...gin.HandlerFunc)
- func (s *Server) IsRunning() bool
- func (s *Server) OPTIONS(relativePath string, handlers ...gin.HandlerFunc)
- func (s *Server) PATCH(relativePath string, handlers ...gin.HandlerFunc)
- func (s *Server) POST(relativePath string, handlers ...gin.HandlerFunc)
- func (s *Server) PUT(relativePath string, handlers ...gin.HandlerFunc)
- func (s *Server) RegisterRoutes(routes func(r *gin.Engine))
- func (s *Server) Run() error
- func (s *Server) RunTLS(certFile, keyFile string) error
- func (s *Server) RunWithGracefulShutdown() error
- func (s *Server) SetHealthCheckPath(path string)
- func (s *Server) Shutdown(ctx context.Context) error
- func (s *Server) Start() error
- func (s *Server) Use(middleware ...gin.HandlerFunc)
- func (s *Server) WaitForShutdown() error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ContextFromGin ¶
ContextFromGin 从 Gin Context 提取 request context 这个 context 包含了 trace_id 和 request_id,可以用于创建 logger 示例用法:
ctx := httpserver.ContextFromGin(c)
logger := logger.FromContext(ctx)
logger.Info("处理用户请求") // 自动包含 trace_id 和 request_id
func DefaultHealthHandler ¶ added in v1.0.2
func DefaultHealthHandler() gin.HandlerFunc
DefaultHealthHandler 默认健康检查处理器
func HealthHandlerWithManager ¶ added in v1.0.2
func HealthHandlerWithManager(manager *HealthCheckManager) gin.HandlerFunc
HealthHandlerWithManager 带管理器的健康检查处理器
func RequestIDMiddleware ¶
func RequestIDMiddleware() gin.HandlerFunc
RequestIDMiddleware 添加 Request ID 的中间件(每个请求唯一)
func TraceIDMiddleware ¶
func TraceIDMiddleware() gin.HandlerFunc
TraceIDMiddleware 添加 Trace ID 的中间件
Types ¶
type Config ¶
type Config struct {
Host string
Port int
ReadTimeout time.Duration
WriteTimeout time.Duration
IdleTimeout time.Duration
MaxHeaderBytes int
ShutdownTimeout time.Duration
// 健康检查配置
EnableHealthCheck bool // 是否启用健康检查
HealthCheckPath string // 健康检查路径,默认为 /health
HealthCheckPort int // 健康检查端口,默认为0(使用主端口)
}
Config 服务器配置
type CustomHealthChecker ¶ added in v1.0.2
type CustomHealthChecker struct {
// contains filtered or unexported fields
}
CustomHealthChecker 自定义健康检查器
func NewCustomHealthChecker ¶ added in v1.0.2
func NewCustomHealthChecker(name string, checker func(ctx context.Context) error) *CustomHealthChecker
NewCustomHealthChecker 创建自定义健康检查器
func (*CustomHealthChecker) CheckHealth ¶ added in v1.0.2
func (chc *CustomHealthChecker) CheckHealth(ctx context.Context) error
CheckHealth 执行自定义健康检查
func (*CustomHealthChecker) GetName ¶ added in v1.0.2
func (chc *CustomHealthChecker) GetName() string
GetName 获取检查器名称
type DatabaseHealthChecker ¶ added in v1.0.2
type DatabaseHealthChecker struct {
// contains filtered or unexported fields
}
DatabaseHealthChecker 数据库健康检查器
func NewDatabaseHealthChecker ¶ added in v1.0.2
func NewDatabaseHealthChecker(name string, db interface { Ping() error }) *DatabaseHealthChecker
NewDatabaseHealthChecker 创建数据库健康检查器
func (*DatabaseHealthChecker) CheckHealth ¶ added in v1.0.2
func (dhc *DatabaseHealthChecker) CheckHealth(ctx context.Context) error
CheckHealth 检查数据库健康状态
func (*DatabaseHealthChecker) GetName ¶ added in v1.0.2
func (dhc *DatabaseHealthChecker) GetName() string
GetName 获取检查器名称
type HTTPHealthChecker ¶ added in v1.0.2
type HTTPHealthChecker struct {
// contains filtered or unexported fields
}
HTTPHealthChecker HTTP服务健康检查器
func NewHTTPHealthChecker ¶ added in v1.0.2
func NewHTTPHealthChecker(name, url string, timeout time.Duration) *HTTPHealthChecker
NewHTTPHealthChecker 创建HTTP服务健康检查器
func (*HTTPHealthChecker) CheckHealth ¶ added in v1.0.2
func (hhc *HTTPHealthChecker) CheckHealth(ctx context.Context) error
CheckHealth 检查HTTP服务健康状态
func (*HTTPHealthChecker) GetName ¶ added in v1.0.2
func (hhc *HTTPHealthChecker) GetName() string
GetName 获取检查器名称
type HealthCheckManager ¶ added in v1.0.2
type HealthCheckManager struct {
// contains filtered or unexported fields
}
HealthCheckManager 健康检查管理器
func NewHealthCheckManager ¶ added in v1.0.2
func NewHealthCheckManager(version string) *HealthCheckManager
NewHealthCheckManager 创建健康检查管理器
func (*HealthCheckManager) AddChecker ¶ added in v1.0.2
func (hcm *HealthCheckManager) AddChecker(checker HealthChecker)
AddChecker 添加健康检查器
func (*HealthCheckManager) CheckHealth ¶ added in v1.0.2
func (hcm *HealthCheckManager) CheckHealth(ctx context.Context) *HealthStatus
CheckHealth 执行所有健康检查
type HealthChecker ¶ added in v1.0.2
HealthChecker 健康检查器接口
type HealthStatus ¶ added in v1.0.2
type HealthStatus struct {
Status string `json:"status"` // healthy, unhealthy
Timestamp int64 `json:"timestamp"` // Unix时间戳
Version string `json:"version,omitempty"` // 应用版本
Uptime int64 `json:"uptime,omitempty"` // 运行时间(秒)
Checks map[string]interface{} `json:"checks,omitempty"` // 详细检查结果
Error string `json:"error,omitempty"` // 错误信息
}
HealthStatus 健康检查状态
type Server ¶
type Server struct {
// contains filtered or unexported fields
}
Server HTTP服务器 - 最小化封装
func (*Server) Any ¶
func (s *Server) Any(relativePath string, handlers ...gin.HandlerFunc)
Any 注册所有HTTP方法的便利方法
func (*Server) DELETE ¶
func (s *Server) DELETE(relativePath string, handlers ...gin.HandlerFunc)
DELETE 注册DELETE路由的便利方法
func (*Server) EnableHealthCheck ¶ added in v1.0.2
func (s *Server) EnableHealthCheck()
EnableHealthCheck 启用健康检查
func (*Server) EnableHealthCheckWithManager ¶ added in v1.0.2
func (s *Server) EnableHealthCheckWithManager(manager *HealthCheckManager)
EnableHealthCheckWithManager 启用带管理器的健康检查
func (*Server) GET ¶
func (s *Server) GET(relativePath string, handlers ...gin.HandlerFunc)
GET 注册GET路由的便利方法
func (*Server) GetHealthCheckPath ¶ added in v1.0.2
GetHealthCheckPath 获取健康检查路径
func (*Server) Group ¶
func (s *Server) Group(relativePath string, handlers ...gin.HandlerFunc) *gin.RouterGroup
Group 创建路由组的便利方法
func (*Server) HEAD ¶
func (s *Server) HEAD(relativePath string, handlers ...gin.HandlerFunc)
HEAD 注册HEAD路由的便利方法
func (*Server) OPTIONS ¶
func (s *Server) OPTIONS(relativePath string, handlers ...gin.HandlerFunc)
OPTIONS 注册OPTIONS路由的便利方法
func (*Server) PATCH ¶
func (s *Server) PATCH(relativePath string, handlers ...gin.HandlerFunc)
PATCH 注册PATCH路由的便利方法
func (*Server) POST ¶
func (s *Server) POST(relativePath string, handlers ...gin.HandlerFunc)
POST 注册POST路由的便利方法
func (*Server) PUT ¶
func (s *Server) PUT(relativePath string, handlers ...gin.HandlerFunc)
PUT 注册PUT路由的便利方法
func (*Server) RegisterRoutes ¶
RegisterRoutes 使用回调函数注册路由(推荐方式)
func (*Server) RunWithGracefulShutdown ¶
RunWithGracefulShutdown 启动服务器并自动处理优雅关闭(阻塞)
func (*Server) SetHealthCheckPath ¶ added in v1.0.2
SetHealthCheckPath 设置健康检查路径
func (*Server) WaitForShutdown ¶
WaitForShutdown 等待关闭信号并执行优雅关闭