认证的使用:
身份验证是将==传入请求==与==一组标识凭据(如请求来自的用户或其签名的令牌)==相关联的机制. 然后 权限 和 限制 组件决定是否拒绝这个请求.
简单来说:
认证 -- 确定了你是谁
权限 -- 确定你能不能访问某个接口
限制 -- 确定你访问某个接口的频率
认证的目的: 告诉服务端你是谁
局部设置:
通过authentication_classes设置认证类
authentication_classes = [MyOrderAuthentication,]
通过authentication_classes设置为空列表,就不再进行认证了
authentication_classes = []
全局设置:
在setting.py文件中设置
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES':['unitls.authentication.MyOrderAuthentication'],
UNAUTHENTICATED_USER': lambda :"匿名用户",
'UNAUTHENTICATED_TOKEN': lambda :'123456',
}
权限的使用:
自定义权限
需要继承继承:BasePermission,可实现has_permission方法
局部设置在views.py文件中设置
通过permission_classes设置权限类
permission_classes = [MyOrderPermission,]
通过authentication_classes设置为空列表,就不再进行权限认证了
permission_classes = []
全局设置在setting.py文件中设置
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES':['unitls.permission.MyOrderPermission'],
}
节流的设置
自定义设置
在视图中定义的类中allow_request方法。
局部设置在views.py文件中设置
在视图中通过throttle_classes属性来设置
throttle_classes = [VisitThrottle,]
全局设置在setting.py文件中设置
全局配置 :在settings配置文件中设置全局默认的节流
REST_FRAMEWORK = {'DEFAULT_THROTTLE_CLASSES':['unitls.throttle.VisitThrottle']}
版本的使用:
局部设置在views.py文件中设置
自定义版本控制类 ParmasVersion
在视图中通过versioning_class属性来设置
versioning_class = ParmasVersion
全局设置在setting.py文件中设置
REST_FRAMEWORK = {
# 配置默认使用的版本控制方案: URLPathVersioning
'DEFAULT_THROTTLE_CLASSES':['unitls.throttle.VisitThrottle'],
'DEFAULT_VERSION': 'v1', # 默认的版本
'ALLOWED_VERSIONS': ['v1', 'v2'], # 有效的版本
'VERSION_PARAM': 'version', # 版本的参数名与URL conf中一致
}
解析器的使用
局部设置在views.py文件中设置
parser_classes = [FormParser, JSONParser]
全局配置在settings文件中设定
REST_FRAMEWORK={'DEFAULT_PARSER_CLASSES':['rest_framework.parsers.JSONParser'],
}
网友评论