-
-
Notifications
You must be signed in to change notification settings - Fork 2.3k
Closed
Labels
Description
Checklist
- Dependencies installed
- No typos
- Searched existing issues and docs
Issue Description
When using the RateLimiter Middleware with a rate between 0 and 1 all events will be rejected instead of applying the specified rate. E.g.: e.Use(middleware.RateLimiter(middleware.NewRateLimiterMemoryStore(0.5)))
I am not saying that it is a common use case to have a rate.Limit between 0 and 1, but it is very confusing that NewRateLimiterMemoryStore() accepts a value of type float, the docs don't mention any restrictions for non-zero values but still the argument is interpreted as zero instead of its actual value.
Expected behaviour
One of those:
- the docs explains how a fractional
rate.Limitis handled NewRateLimiterMemoryStore()only accepts integer values- the RateLimiter interprets a fractional
rate.Limitcorrectly, e.g. a limit of 0.5 will result in an equivalent rate of 30 requests/minute
Actual behaviour
a fractional rate.Limit between 0 and 1 is surprisingly interpreted like a zero Limit
Version/commit
v4.2.2
yagikota