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之版本控制的主要内容,如果未能解决你的问题,请参考以下文章

rest-framework之权限组件

Django rest-framework框架-组件之渲染器

Django rest-framework框架-访问频率控制

Django rest-framework框架-组件之路由

基于Django的Rest Framework框架的序列化组件

rest-framework框架的基本组件