美文网首页
认证,权限,节流,版本,解析器

认证,权限,节流,版本,解析器

作者: 风雨声豪入梦中 | 来源:发表于2019-05-07 21:54 被阅读0次

认证的使用:

身份验证是将==传入请求==与==一组标识凭据(如请求来自的用户或其签名的令牌)==相关联的机制. 然后 权限 和 限制 组件决定是否拒绝这个请求.
简单来说:
    认证 -- 确定了你是谁
    权限 -- 确定你能不能访问某个接口
    限制 -- 确定你访问某个接口的频率
认证的目的: 告诉服务端你是谁

局部设置:

通过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'],
}

相关文章

网友评论

      本文标题:认证,权限,节流,版本,解析器

      本文链接:https://www.haomeiwen.com/subject/jxhuoqtx.html