router

package
v1.1.0 Latest Latest
Warning

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

Go to latest
Published: Jun 23, 2026 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var DefaultModule = &defaultModule{}

DefaultModule 默认路由模块(可用于 WithModules)

Functions

func Apply

func Apply()

Apply 应用路由注册(全局方式)

func Group

func Group(engine *gin.Engine, path string, middlewares ...gin.HandlerFunc) *gin.RouterGroup

Group 创建路由组(带中间件分组)

func GroupWithMiddlewareGroup

func GroupWithMiddlewareGroup(engine *gin.Engine, path string, groupName string) *gin.RouterGroup

GroupWithMiddlewareGroup 使用中间件分组创建路由组

func RegisterDefaultRoutes

func RegisterDefaultRoutes(r *gin.Engine, checks ...HealthCheck)

RegisterDefaultRoutes 注册框架默认路由(健康检查、Swagger) 用户可以选择使用或不使用这些默认路由

func RegisterHealthRoute

func RegisterHealthRoute(r *gin.Engine, checks ...HealthCheck)

RegisterHealthRoute 注册健康检查路由(兼容端点,等价于 readiness)。

func RegisterLivenessRoute added in v1.1.0

func RegisterLivenessRoute(r *gin.Engine)

RegisterLivenessRoute 注册存活性探针(#17)。 GET /livez 永不依赖外部,仅表示进程存活,始终返回 200。 供 K8s livenessProbe 使用:失败由进程崩溃体现,而非端点返回 503。

func RegisterMetricsRoute added in v1.1.0

func RegisterMetricsRoute(r *gin.Engine, path ...string)

RegisterMetricsRoute 注册 Prometheus 指标暴露端点与采集中间件(#18)。

默认路径 /metrics。传入 path 可自定义。同时把 Metrics() 中间件挂到该组, 这样只有业务路由被统计,/metrics 自身与 /health 等基础路由不计入。

用法:

router.RegisterMetricsRoute(r)              // /metrics
router.RegisterMetricsRoute(r, "/metrics")  // 等价

func RegisterReadinessRoute added in v1.1.0

func RegisterReadinessRoute(r *gin.Engine, checks ...HealthCheck)

RegisterReadinessRoute 注册就绪性探针(#17)。 GET /readyz 复用 HealthCheck 检查依赖(mysql/redis...),任一失败返回 503。 供 K8s readinessProbe 使用:未就绪时不接流量。

func RegisterSwaggerRoutes

func RegisterSwaggerRoutes(r *gin.Engine)

RegisterSwaggerRoutes 注册 Swagger 文档路由

Types

type HealthCheck

type HealthCheck struct {
	Name     string
	Check    func(context.Context) error
	Disabled bool
}

HealthCheck 健康检查项

type MiddlewareGroup

type MiddlewareGroup struct {
	Name        string
	Middlewares []gin.HandlerFunc
}

MiddlewareGroup 中间件分组

func NewMiddlewareGroup

func NewMiddlewareGroup(name string, middlewares ...gin.HandlerFunc) *MiddlewareGroup

NewMiddlewareGroup 创建中间件分组

type Module

type Module interface {
	// Name 模块名称(用于日志和调试)
	Name() string
	// Register 注册路由到指定组
	Register(r *gin.RouterGroup)
}

Module 路由模块接口 用户实现此接口来注册业务路由

type ModuleFunc

type ModuleFunc func(r *gin.RouterGroup)

ModuleFunc 函数式模块(简化单文件模块注册)

func (ModuleFunc) Name

func (f ModuleFunc) Name() string

Name 实现 Module 接口(函数式模块默认名称)

func (ModuleFunc) Register

func (f ModuleFunc) Register(r *gin.RouterGroup)

Register 实现 Module 接口

type RESTfulRoute

type RESTfulRoute struct {
	Group *gin.RouterGroup
	Path  string
}

RESTfulRoute RESTful 路由快捷注册

func NewRESTful

func NewRESTful(group *gin.RouterGroup, path string) *RESTfulRoute

NewRESTful 创建 RESTful 路由

func (*RESTfulRoute) CRUD

func (r *RESTfulRoute) CRUD(list, detail, create, update, delete gin.HandlerFunc)

CRUD 注册标准 CRUD 路由 GET /path - 列表 GET /path/:id - 详情 POST /path - 创建 PUT /path/:id - 更新 DELETE /path/:id - 删除

func (*RESTfulRoute) DELETE

func (r *RESTfulRoute) DELETE(handlers ...gin.HandlerFunc)

DELETE 注册 DELETE 路由

func (*RESTfulRoute) GET

func (r *RESTfulRoute) GET(handlers ...gin.HandlerFunc)

GET 注册 GET 路由

func (*RESTfulRoute) PATCH

func (r *RESTfulRoute) PATCH(handlers ...gin.HandlerFunc)

PATCH 注册 PATCH 路由

func (*RESTfulRoute) POST

func (r *RESTfulRoute) POST(handlers ...gin.HandlerFunc)

POST 注册 POST 路由

func (*RESTfulRoute) PUT

func (r *RESTfulRoute) PUT(handlers ...gin.HandlerFunc)

PUT 注册 PUT 路由

type Registry

type Registry struct {
	// contains filtered or unexported fields
}

Registry 路由注册中心

func GetRegistry

func GetRegistry() *Registry

GetRegistry 获取全局注册中心

func Init

func Init(engine *gin.Engine) *Registry

Init 初始化全局注册中心

func NewRegistry

func NewRegistry(engine *gin.Engine) *Registry

NewRegistry 创建路由注册中心

func RegisterModule

func RegisterModule(module Module) *Registry

RegisterModule 注册模块(全局方式)

func RegisterModuleFunc

func RegisterModuleFunc(name string, fn func(r *gin.RouterGroup)) *Registry

RegisterModuleFunc 注册函数式模块(全局方式)

func RegisterVersion

func RegisterVersion(version *VersionedAPI) *Registry

RegisterVersion 注册版本化 API(全局方式)

func Use

func Use(middlewares ...gin.HandlerFunc) *Registry

Use 注册全局中间件(全局方式)

func (*Registry) Apply

func (r *Registry) Apply()

Apply 应用所有路由注册

func (*Registry) GetMiddlewareGroup

func (r *Registry) GetMiddlewareGroup(name string) []gin.HandlerFunc

GetMiddlewareGroup 获取中间件分组

func (*Registry) RegisterMiddlewareGroup

func (r *Registry) RegisterMiddlewareGroup(group *MiddlewareGroup) *Registry

RegisterMiddlewareGroup 注册中间件分组

func (*Registry) RegisterModule

func (r *Registry) RegisterModule(module Module) *Registry

RegisterModule 注册模块(无版本)

func (*Registry) RegisterModuleFunc

func (r *Registry) RegisterModuleFunc(name string, fn func(r *gin.RouterGroup)) *Registry

RegisterModuleFunc 注册函数式模块

func (*Registry) RegisterVersion

func (r *Registry) RegisterVersion(version *VersionedAPI) *Registry

RegisterVersion 注册版本化 API

func (*Registry) Use

func (r *Registry) Use(middlewares ...gin.HandlerFunc) *Registry

Use 注册全局中间件

type VersionedAPI

type VersionedAPI struct {
	Version     string            // 版本标识,如 "v1", "v2"
	BasePath    string            // 基础路径,如 "/api/v1"
	Modules     []Module          // 该版本的模块列表
	Middlewares []gin.HandlerFunc // 该版本的公共中间件
}

VersionedAPI 版本化 API 配置

func NewVersion

func NewVersion(version, basePath string, middlewares ...gin.HandlerFunc) *VersionedAPI

NewVersion 创建版本化 API

func (*VersionedAPI) AddModule

func (v *VersionedAPI) AddModule(module Module) *VersionedAPI

AddModule 为版本添加模块

func (*VersionedAPI) AddModuleFunc

func (v *VersionedAPI) AddModuleFunc(name string, fn func(r *gin.RouterGroup)) *VersionedAPI

AddModuleFunc 为版本添加函数式模块

Jump to

Keyboard shortcuts

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