middleware

package
v1.3.13 Latest Latest
Warning

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

Go to latest
Published: Oct 15, 2026 License: MIT Imports: 17 Imported by: 0

Documentation

Index

Constants

View Source
const (
	XRateLimitLimit     = "X-RateLimit-Limit"
	XRateLimitRemaining = "X-RateLimit-Remaining"
	XRateLimitReset     = "X-RateLimit-Reset"
)

Variables

View Source
var (
	// DefaultLimitMessage 触发限制时的 429 消息
	DefaultLimitMessage = "处理中的请求数过多"

	// DefaultLimitReached 达到限制时执行的 Hook
	DefaultLimitReached = func(c fiber.Ctx) error {
		return response.APIException(c, http.StatusTooManyRequests, DefaultLimitMessage, nil)
	}
)

Functions

func AllLogCondition added in v0.10.1

func AllLogCondition(fiber.Ctx, time.Duration) bool

func BlacklistChecker added in v0.3.2

func BlacklistChecker(c fiber.Ctx) bool

BlacklistChecker 是否存在于黑名单, true 是黑名单 (黑名单为空时: 放过, false)

func CacheStats added in v0.3.4

func CacheStats() map[string]any

func CheckBlacklist

func CheckBlacklist(asAPI bool) fiber.Handler

CheckBlacklist 接口黑名单检查

func CheckPathOr404

func CheckPathOr404() fiber.Handler

CheckPathOr404 检查 URL 是否为配置中的路由

func CheckWhitelist

func CheckWhitelist(asAPI bool) fiber.Handler

CheckWhitelist 接口白名单检查

func CheckWhitelistAnd added in v0.3.2

func CheckWhitelistAnd(checker ForbiddenChecker, asAPI bool) fiber.Handler

CheckWhitelistAnd 同时校验接口白名单和自定义检查器

func CheckWhitelistOr added in v0.3.2

func CheckWhitelistOr(checker ForbiddenChecker, asAPI bool) fiber.Handler

CheckWhitelistOr 校验接口白名单或自定义检查器

func CounterStats

func CounterStats() map[string]any

func DefaultLogCondition

func DefaultLogCondition(c fiber.Ctx, elapsed time.Duration) bool

func HTTPCounter

func HTTPCounter(name string) fiber.Handler

HTTPCounter 请求简单计数

func PurgeBlacklistCache added in v0.3.4

func PurgeBlacklistCache()

PurgeBlacklistCache 配置项变化时需要清空缓存, 由应用端在 Runtime() 调用

func PurgeWhitelistCache added in v0.3.4

func PurgeWhitelistCache()

PurgeWhitelistCache 配置项变化时需要清空缓存, 由应用端在 Runtime() 调用

func RecoverLogger

func RecoverLogger() fiber.Handler

RecoverLogger Recover 并记录日志

func ResetStatistics added in v0.0.16

func ResetStatistics()

ResetStatistics 重置统计数据

func UseBlacklistCache added in v0.3.4

func UseBlacklistCache(capacity, lifetime uint32) error

UseBlacklistCache 重新设置黑名单检查时缓存, 配置变化时可选再次调用, 由应用端 Start() Runtime() 调用

func UseWhitelistCache added in v0.3.4

func UseWhitelistCache(capacity, lifetime uint32) error

UseWhitelistCache 重新设置白名单检查时缓存, 配置变化时可选再次调用, 由应用端 Start() Runtime() 调用

func WebLogger

func WebLogger(cond LogCondition, withBody ...bool) fiber.Handler

WebLogger 按中间件入口计时并记录请求日志, 保留原错误供上游处理. 真实超时后业务可能仍使用 Ctx, 此时不记录日志, 不读取请求字段或调用自定义条件.

func WhitelistChecker added in v0.3.2

func WhitelistChecker(c fiber.Ctx) bool

WhitelistChecker 是否通过了白名单检查, true 是白名单 (白名单为空时: 通过, true)

func WithTimeout

func WithTimeout(dur time.Duration, timeoutErrors ...error) fiber.Handler

WithTimeout 为后续 Handler 设置处理期限, 默认沿用 Fiber 的 503 超时响应. Handler 应监听 c.Context().Done() 并及时结束; 超时回包不会强制终止业务逻辑. timeoutErrors 按错误链匹配自定义超时错误, 普通错误继续交由应用 ErrorHandler 处理.

func WithTimeoutDefault

func WithTimeoutDefault(timeoutErrors ...error) fiber.Handler

WithTimeoutDefault 使用 config.WebTimeout 构建中间件, 其他行为与 WithTimeout 一致.

Types

type ForbiddenChecker added in v0.3.2

type ForbiddenChecker = func(fiber.Ctx) bool

type LogCondition

type LogCondition func(c fiber.Ctx, elapsed time.Duration) bool

LogCondition 日志记录条件计算器

type RequestsLimiter added in v0.4.2

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

RequestsLimiter 同时处理的请求数限制 请求处理中 +1, 请求已返回: -1 请求超限返回 429 错误

func NewDefaultRequestsLimiter added in v0.4.2

func NewDefaultRequestsLimiter() *RequestsLimiter

NewDefaultRequestsLimiter 使用配置文件参数创建限制器 app.Use(middleware.NewDefaultRequestsLimiter().Handler())

func NewRequestsLimiter added in v0.4.2

func NewRequestsLimiter(limit int32, limitReached fiber.Handler) *RequestsLimiter

func (*RequestsLimiter) Allow added in v0.4.2

func (r *RequestsLimiter) Allow() bool

Allow 判定并登记一次准入, Handler 在请求返回时释放计数. 负值只关闭上限检查, 保留在途数量以支持运行中重新开启限制.

func (*RequestsLimiter) Handler added in v0.4.2

func (r *RequestsLimiter) Handler() fiber.Handler

func (*RequestsLimiter) Limit added in v0.4.2

func (r *RequestsLimiter) Limit() int32

func (*RequestsLimiter) Limited added in v0.4.3

func (r *RequestsLimiter) Limited() uint64

func (*RequestsLimiter) Remaining added in v0.4.2

func (r *RequestsLimiter) Remaining() int32

func (*RequestsLimiter) Running added in v0.4.2

func (r *RequestsLimiter) Running() int32

func (*RequestsLimiter) SetLimit added in v0.4.2

func (r *RequestsLimiter) SetLimit(n int32)

func (*RequestsLimiter) Stats added in v0.4.3

func (r *RequestsLimiter) Stats() map[string]int

Jump to

Keyboard shortcuts

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