Learning the purpose of the different throttling classes in the Django REST framework
The Django REST framework provides three throttling classes in the rest_framework.throttling
module. All of them are subclasses of the SimpleRateThrottle
class which inherits from the BaseThrottle
class.
The three classes allow us to specify throttling rules that indicate the maximum number of requests in a specific period of time and within a determined scope. Each class is responsible for computing and validating the maximum number of requests per period. The classes provide different mechanisms to determine the previous request information to specify the scope by comparing it with the new request. The Django REST framework stores the required data to analyze each throttling rule in the cache. Thus, the classes override the inherited get_cache_key
method that determines the scope that will be used for computing and validating.
The following are the three throttling classes:
AnonRateThrottle
: This class limits...