zoukankan      html  css  js  c++  java
  • 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里

    有版本相关的的东西可以打印

    在打印一下

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

  • 相关阅读:
    浅析匿名内部类
    Neo4j学习实录 下载-安装-springboot操作neo4j
    Objective-C内存管理教程和原理剖析2
    Objective-C内存管理教程和原理剖析
    Objective-C语法快速参考
    Objective-C语法
    一点基础的东西:Objective-C的类型和常量
    IOS开发之----异常处理
    UITextField的详细使用
    TextField知多少
  • 原文地址:https://www.cnblogs.com/zhengyuli/p/11143393.html
Copyright © 2011-2022 走看看