Flask-Limiter
Flask-Limiter is a Flask extension package that can let us easily add rate-limiting functionality to an endpoint. Apart from limiting the rate, it can also put the rate limit information in the HTTP header by using the RATELIMIT_HEADERS_ENABLED
configuration. We, therefore, don't need to code the HTTP header information ourselves. Besides that, it also supports a configurable backend for storage with current implementations for Redis, in-memory, Memcached, and others.
We can even set multiple limits; we just need to delimit them using a delimiter. For example, we can set the limit to be 100
requests per minute and 1000
requests per hour, at the same time.
Use the following syntax to set up the rate limit for our API endpoint:
[count] [per|/] [n (optional)] [second|minute|hour|day|month|year]
Here are some examples:
100 per minute 100/minute 100/minute;1000/hour;5000/day
Now we understand how rate limits work. We will work on a practical exercise...