rest-framework之版本控制
Posted zhengyuli
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了rest-framework之版本控制相关的知识,希望对你有一定的参考价值。
作用
这里的版本控制就是restful规范里的版本号,用于版本的控制
内置的版本控制类
from rest_framework.versioning import QueryParameterVersioning,AcceptHeaderVersioning,NamespaceVersioning,URLPathVersioning #基于url的get传参方式:QueryParameterVersioning------>如:/users?version=v1 #基于url的正则方式:URLPathVersioning------>/v1/users/ #基于 accept 请求头方式:AcceptHeaderVersioning------>Accept: application/json; version=1.0 #基于主机名方法:HostNameVersioning------>v1.example.com #基于django路由系统的namespace:NamespaceVersioning------>example.com/v1/users/
局部使用
注意这里只能使用一个
settings里面还要加上
REST_FRAMEWORK = ‘DEFAULT_VERSION‘: ‘v1‘, # 默认版本(从request对象里取不到,显示的默认值) ‘ALLOWED_VERSIONS‘: [‘v1‘, ‘v2‘], # 允许的版本 ‘VERSION_PARAM‘: ‘version‘ # URL中获取值的key
全局使用
REST_FRAMEWORK = ‘DEFAULT_VERSIONING_CLASS‘:rest_framework.versioning.URLPathVersioning‘, ‘DEFAULT_VERSION‘: ‘v1‘, # 默认版本(从request对象里取不到,显示的默认值) ‘ALLOWED_VERSIONS‘: [‘v1‘, ‘v2‘], # 允许的版本 ‘VERSION_PARAM‘: ‘version‘ # URL中获取值的key
修改路由
测试
如果输入v3就报错
获取版本号
在APIView里的dispach里
有版本相关的的东西可以打印
在打印一下
打印出来是用哪个版本对象
以上是关于rest-framework之版本控制的主要内容,如果未能解决你的问题,请参考以下文章
Django rest-framework框架-组件之渲染器
Django rest-framework框架-访问频率控制