Documentation ¶
Index ¶
- Variables
- func IPTokenExtractor(c *gin.Context) string
- func NewRateLimiterMw(next krakendgin.HandlerFactory) krakendgin.HandlerFactory
- type EndpointMw
- func NewEndpointRateLimiterMw(tb rate.Limiter) EndpointMw
- func NewHeaderLimiterMw(header string, maxRate float64, capacity int) EndpointMw
- func NewIpLimiterMw(maxRate float64, capacity int) EndpointMw
- func NewTokenLimiterMw(tokenExtractor TokenExtractor, limiterStore krakendrate.LimiterStore) EndpointMw
- type TokenExtractor
Constants ¶
This section is empty.
Variables ¶
var HandlerFactory = NewRateLimiterMw(krakendgin.EndpointHandler)
HandlerFactory is the out-of-the-box basic ratelimit handler factory using the default krakend endpoint handler for the gin router
Functions ¶
func IPTokenExtractor ¶
IPTokenExtractor extracts the IP of the request
func NewRateLimiterMw ¶
func NewRateLimiterMw(next krakendgin.HandlerFactory) krakendgin.HandlerFactory
NewRateLimiterMw builds a rate limiting wrapper over the received handler factory.
Types ¶
type EndpointMw ¶
type EndpointMw func(gin.HandlerFunc) gin.HandlerFunc
EndpointMw is a function that decorates the received handlerFunc with some rateliming logic
func NewEndpointRateLimiterMw ¶
func NewEndpointRateLimiterMw(tb rate.Limiter) EndpointMw
NewEndpointRateLimiterMw creates a simple ratelimiter for a given handlerFunc
func NewHeaderLimiterMw ¶
func NewHeaderLimiterMw(header string, maxRate float64, capacity int) EndpointMw
NewHeaderLimiterMw creates a token ratelimiter using the value of a header as a token
func NewIpLimiterMw ¶
func NewIpLimiterMw(maxRate float64, capacity int) EndpointMw
NewHeaderLimiterMw creates a token ratelimiter using the IP of the request as a token
func NewTokenLimiterMw ¶
func NewTokenLimiterMw(tokenExtractor TokenExtractor, limiterStore krakendrate.LimiterStore) EndpointMw
NewTokenLimiterMw returns a token based ratelimiting endpoint middleware with the received TokenExtractor and LimiterStore
type TokenExtractor ¶
TokenExtractor defines the interface of the functions to use in order to extract a token for each request
func HeaderTokenExtractor ¶
func HeaderTokenExtractor(header string) TokenExtractor
HeaderTokenExtractor returns a TokenExtractor that looks for the value of the designed header