module
Version:
v0.1.9
Opens a new window with list of versions in this module.
Published: Oct 15, 2026
License: MIT
Opens a new window with license information.
README
¶
middleware
Hertz 自研标准中间件栈——Recovery/Response/AccessLog/RateLimit/Auth/I18n + 社区库桥接。
项目主页:https://oekit.github.io/ · 名称由来:Open Easy Kit(开源 · 易用 · 工具集合)
🤖 AI Agent:本仓规范与硬规则见 AGENTS.md;机器可读索引见 llms.txt(接口签名以源码为准)。
本仓库是 ekit(git.enjoye.top/enjoydream/ekit v0.34.0)
拆分出的独立 Go module,属于 oekit(Open Easy Kit)模块矩阵。
安装
go get github.com/oekit/middleware@v0.1.8
能做什么
- 标准栈一键注册:Prometheus → TraceID → Recovery → Response → AccessLog
- Fail 统一出口:BizError 映射 HTTP 码,500 自动结构化日志
- 限流/认证:令牌桶(RemoteAddr key)、Bearer Token、可插拔 Authorizer
- contrib 桥接:JWT/Sessions/Swagger/CSRF/pprof/Debug/Gzip/ETag/BasicAuth/Lark/Sentinel/AutoTLS/ReverseProxy
- governance:动态限流/超时中间件(配 oekit/core 的治理 schema)
使用示例
一键标准栈
import mw "github.com/oekit/middleware/middleware"
for _, m := range mw.DefaultMiddleware(mw.StackConfig{
ServiceName: "my-service",
Namespace: "order", // 指标前缀
SkipPaths: []string{"/healthz"},
}) {
h.Use(m)
}
统一错误出口
mw.Fail(ctx, c, err) // BizError→对应码;ErrNotFound→404;ErrNoInstances→503;兜底 500
⚠️ v0.28.1 起:Recovery 已入标准栈(引擎无默认 PanicHandler,裸奔会断连);限流默认 key 为 RemoteAddr(hertz 默认信任任意 XFF 可被伪造)。
包清单
- `middleware/` — 标准栈:RecoveryMiddleware/ResponseMiddleware/AccessLogMiddleware/RateLimitMiddleware/BearerTokenAuth/Prometheus/I18n/Fail(DefaultMiddleware 一键注册)
- `contrib/` — hertz-contrib 桥接:JWT/Cache/Sessions/Swagger/CSRF/pprof/Debug/Lark/ReverseProxy/Sentinel/Gzip/ETag/BasicAuth 等
- `hmw/` — requestid 集成(trace_id 注入 RequestContext)
矩阵总览(23 活跃模块,自动生成)
当前仓库依赖
详见上方矩阵表中本仓库行。
与 ekit 单体仓库的关系
- 代码与 ekit v0.34.0 等价,module 路径
git.enjoye.top/enjoydream/ekit/... → github.com/oekit/middleware/...
- 各子仓库独立发版(SemVer);开发规范沿用 ekit AGENTS.md 约定
License
见 LICENSE
Directories
¶
Package contrib 集中承载 hertz-contrib 社区库的桥接适配。
|
Package contrib 集中承载 hertz-contrib 社区库的桥接适配。 |
Package hmw 提供 trace_id 的 Hertz 中间件实现。
|
Package hmw 提供 trace_id 的 Hertz 中间件实现。 |
Package mw 提供 CloudWeGo Hertz 服务的自研标准中间件栈。
|
Package mw 提供 CloudWeGo Hertz 服务的自研标准中间件栈。 |
contrib
Package contrib 集中承载 hertz-contrib 社区库的桥接适配。
|
Package contrib 集中承载 hertz-contrib 社区库的桥接适配。 |
|
|
Package hmw 提供 trace_id 的 Hertz 中间件实现。 |
Click to show internal directories.
Click to hide internal directories.