限制频率
开放平台的API接口调用需要限制其频率,以节约服务器资源和避免恶意的频繁调用。
内置频率类
在应用下新建一个mythrottle类。如下代码:
from rest_framework.throttling import SimpleRateThrottle
class VisitThrottle(SimpleRateThrottle):
scope = "未认证用户"
def get_cache_key(self, request, view):
return self.get_ident(request)
class UserThrottle(SimpleRateThrottle):
scope = "已认证用户"
def get_cache_key(self, request, view):
return request.user
配置
对于未登录的用户根据IP来限制,对于已经登录的用户可以根据用户的唯一标识。
'DEFAULT_THROTTLE_CLASSES': ['app06.mythrottle.UserThrottle', ],
'DEFAULT_THROTTLE_RATES': {
'未认证用户': '3/m',
'已认证用户': '10/m',
},