from rest_framework.throttling import UserRateThrottle, AnonRateThrottle
from rest_framework.views import APIView
from rest_framework.response import Response
class BurstRateThrottle(UserRateThrottle):
scope = 'burst'
class SustainedRateThrottle(UserRateThrottle):
scope = 'sustained'
class DataExportView(APIView):
throttle_classes = [BurstRateThrottle, SustainedRateThrottle]
def get(self, request):
return Response({'data': 'exported'})
# settings.py
REST_FRAMEWORK = {
'DEFAULT_THROTTLE_RATES': {
'burst': '100/hour',
'sustained': '1000/day',
}
}Throttling and Rate Limiting Scenario
An authenticated user can make 100 requests/hour and 1000 requests/day. If they exceed either limit, they receive HTTP 429 Too Many Requests.
The user can make 100 requests in the first hour and 1000 requests in the same day, totaling 1100 requests allowed.
BurstRateThrottle and SustainedRateThrottle are evaluated with OR logic; violating either one blocks the request.
Throttle scopes are ignored if multiple throttle classes are specified; only the first one is applied.
Show answer & explanationAnswer
Correct answer
An authenticated user can make 100 requests/hour and 1000 requests/day. If they exceed either limit, they receive HTTP 429 Too Many Requests.
Explanation
Multiple throttle classes work together with AND logic—all must be satisfied. UserRateThrottle limits per authenticated user, AnonRateThrottle limits per IP. Rates follow format 'requests/timeperiod'.
All 29 Django REST API Development questions
- 1.What is the primary purpose of Django REST Framework (DRF)?
- 2.What is a Serializer in Django REST Framework?
- 3.Which decorator is used to convert a regular Django view into an API view in DRF?
- 4.What is the purpose of ViewSets in Django REST Framework?
- 5.Which class should be inherited to create a basic API view in DRF?
- 6.What is the default authentication method in Django REST Framework?
- 7.How do you register URLs for ViewSets in Django REST Framework?
- 8.What does the status module in DRF provide?
- 9.Which permission class allows only authenticated users to access an API endpoint?
- 10.What is the Response class used for in Django REST Framework?
- 11.Scenario:
- 12.What will be the output of the following code snippet?
- 13.Scenario:
- 14.What is the difference between ModelSerializer and Serializer in Django REST Framework?
- 15.Identify the bug in the following code snippet:
- 16.How do you implement pagination in a Django REST Framework API?
- 17.Scenario:
- 18.What is the purpose of the queryset attribute in a ViewSet?
- 19.Scenario:
- 20.What will be the output of this code snippet?
- 21.Understanding DRF Serializers and Nested Relationships
- 22.DRF Viewsets and Router Configuration Scenario
- 23.Authentication and Permissions in DRF
- 24.Pagination and Filtering in DRF Scenario
- 25.Custom Validation in DRF Serializers
- 26.Status Codes and Exception Handling in DRF
- 27.Throttling and Rate Limiting Scenario
- 28.Request and Response Cycle with Middleware
- 29.Advanced Serializer Optimization and Performance
