Documentation ¶
Overview ¶
Example ¶
r := gin.New() r.Use( SentinelMiddleware( // customize resource extractor if required // method_path by default WithResourceExtractor(func(ctx *gin.Context) string { return ctx.GetHeader("X-Real-IP") }), // customize block fallback if required // abort with status 429 by default WithBlockFallback(func(ctx *gin.Context) { ctx.AbortWithStatusJSON(400, map[string]interface{}{ "err": "too many request; the quota used up", "code": 10222, }) }), ), ) r.GET("/test", func(c *gin.Context) {}) _ = r.Run(":0")
Output:
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func SentinelMiddleware ¶
func SentinelMiddleware(opts ...Option) gin.HandlerFunc
SentinelMiddleware returns new gin.HandlerFunc Default resource name is {method}:{path}, such as "GET:/api/users/:id" Default block fallback is returning 429 code Define your own behavior by setting options
Types ¶
type Option ¶
type Option func(*options)
func WithBlockFallback ¶
WithBlockFallback sets the fallback handler when requests are blocked.
Click to show internal directories.
Click to hide internal directories.