httpserver

package
v1.0.2 Latest Latest
Warning

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

Go to latest
Published: Dec 24, 2025 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CORSMiddleware

func CORSMiddleware() gin.HandlerFunc

CORSMiddleware CORS 中间件

func ContextFromGin

func ContextFromGin(c *gin.Context) context.Context

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 GetRequestID

func GetRequestID(c *gin.Context) string

GetRequestID 从 context 中获取 request id

func GetTraceID

func GetTraceID(c *gin.Context) string

GetTraceID 从 context 中获取 trace id

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 服务器配置

func DefaultConfig

func DefaultConfig() *Config

DefaultConfig 返回默认配置

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

type HealthChecker interface {
	CheckHealth(ctx context.Context) error
	GetName() string
}

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 NewServer

func NewServer(config *Config) *Server

NewServer 创建新的HTTP服务器

func (*Server) Addr

func (s *Server) Addr() string

Addr 返回服务器地址

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) Engine

func (s *Server) Engine() *gin.Engine

Engine 返回Gin引擎,用户完全控制

func (*Server) GET

func (s *Server) GET(relativePath string, handlers ...gin.HandlerFunc)

GET 注册GET路由的便利方法

func (*Server) GetHealthCheckPath added in v1.0.2

func (s *Server) GetHealthCheckPath() string

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) IsRunning

func (s *Server) IsRunning() bool

IsRunning 检查服务器是否正在运行

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

func (s *Server) RegisterRoutes(routes func(r *gin.Engine))

RegisterRoutes 使用回调函数注册路由(推荐方式)

func (*Server) Run

func (s *Server) Run() error

Run 启动服务器(阻塞)

func (*Server) RunTLS

func (s *Server) RunTLS(certFile, keyFile string) error

RunTLS 启动HTTPS服务器(阻塞)

func (*Server) RunWithGracefulShutdown

func (s *Server) RunWithGracefulShutdown() error

RunWithGracefulShutdown 启动服务器并自动处理优雅关闭(阻塞)

func (*Server) SetHealthCheckPath added in v1.0.2

func (s *Server) SetHealthCheckPath(path string)

SetHealthCheckPath 设置健康检查路径

func (*Server) Shutdown

func (s *Server) Shutdown(ctx context.Context) error

Shutdown 优雅关闭服务器

func (*Server) Start

func (s *Server) Start() error

Start 启动服务器(非阻塞)

func (*Server) Use

func (s *Server) Use(middleware ...gin.HandlerFunc)

Use 添加中间件的便利方法

func (*Server) WaitForShutdown

func (s *Server) WaitForShutdown() error

WaitForShutdown 等待关闭信号并执行优雅关闭

Jump to

Keyboard shortcuts

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