rest-framework之版本控制

做用

这里的版本控制就是restful规范里的版本号,用于版本的控制django

内置的版本控制类

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/

局部使用

注意这里只能使用一个json

settings里面还要加上restful

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就报错app

获取版本号

在APIView里的dispach里测试

有版本相关的的东西能够打印url

在打印一下spa

打印出来是用哪一个版本对象3d

相关文章
相关标签/搜索