Django REST Framework(DRF)でユーザーのリクエスト回数を制限する


リクエストの回数を制限したいのでやり方を調べてみた。

settings.py
REST_FRAMEWORK = {
    'DEFAULT_THROTTLE_CLASSES': [
        'rest_framework.throttling.AnonRateThrottle',
        'rest_framework.throttling.UserRateThrottle'
    ],
    'DEFAULT_THROTTLE_RATES': {
        'anon': '50/minute', #1分間に50回まで
        'user': '50/minute'
    }
}
views.py
from rest_framework.throttling import UserRateThrottle

class CustomUserAPI(APIView):
    throttle_classes = [UserRateThrottle] #これを追加すればこのクラスは制限がかかる
    def get(self, request):
        users = NewUser.objects.all()
        serializer = UserSerializer(users, many=True)

        return JsonResponse(serializer.data, safe=False)