当前位置: 首页 > news >正文

做pc端网站价位合肥公司网站开发

做pc端网站价位,合肥公司网站开发,如何搭建网站教程视频,寿光做网站的公司API版本 在开发过程中可能会有多版本的API#xff0c;因此需要对API进行管理。django drf中对于版本的管理也很方便。 http://www.example.com/api/v1/info http://www.example.com/api/v2/info 上面这种形式就是很常见的版本管理 在restful规范中#xff0c;后端的API需…API版本 在开发过程中可能会有多版本的API因此需要对API进行管理。django drf中对于版本的管理也很方便。 http://www.example.com/api/v1/info http://www.example.com/api/v2/info 上面这种形式就是很常见的版本管理 在restful规范中后端的API需要体现出版本 在django drf中共有三种形式的版本管理 通过GET参数传递通过URL路由进行传递通过请求头进行传递 下面将对这三种方法逐一介绍 通过get请求传递版本信息 视图函数代码 from rest_framework.views import APIView from rest_framework.response import Response from rest_framework.versioning import QueryParameterVersioningclass HomeView(APIView):versioning_class QueryParameterVersioningdef get(self, request):print(api_version, request.version)print(request.versioning_scheme)url request.versioning_scheme.reverse(home, requestrequest)print(drf反向生成的URL为, url)self.dispatchreturn Response({code: 123123, Home: Home})urls.py from django.urls import path from app01.views import HomeViewurlpatterns [path(home/, HomeView.as_view(), namehome), ]在项目的settings.py文件中我们还需要进行三个配置 REST_FRAMEWORK {# get请求的默认参数名称VERSION_PARAM: version,# 默认的版本DEFAULT_VERSION: v1,# 允许的版本ALLOWED_VERSIONS: [v1, v2, v3, v111] }其中VERSION_PARAM代表get请求的默认参数名后面请求接口http://127.0.0.1:8000/home/?versionv1时django会自动将参数中的version获取到并赋值到request.version中。 具体的可以参考drf中通过get请求传递版本对应部分的源码 class QueryParameterVersioning(BaseVersioning):GET /something/?version0.1 HTTP/1.1Host: example.comAccept: application/jsoninvalid_version_message _(Invalid version in query parameter.)# 用来提取版本def determine_version(self, request, *args, **kwargs):# 从请求的参数中先获取有没有版本如果没有版本则赋值为默认的版本参数version request.query_params.get(self.version_param, self.default_version)if not self.is_allowed_version(version):raise exceptions.NotFound(self.invalid_version_message)return version# 用来方向生成URLdef reverse(self, viewname, argsNone, kwargsNone, requestNone, formatNone, **extra):url super().reverse(viewname, args, kwargs, request, format, **extra)if request.version is not None:return replace_query_param(url, self.version_param, request.version)return urlQueryParameterVersioning类继承自BaseVersioing类。在BaseVersioing类中有三个默认的定义 class BaseVersioning:default_version api_settings.DEFAULT_VERSIONallowed_versions api_settings.ALLOWED_VERSIONSversion_param api_settings.VERSION_PARAMdefault_version 代表默认的版本会自动去全局配置中寻找如果全局中没有配置则去局部进行寻找 allowed_versions 代表允许的版本号会自动取settings.py文件中去读取相应的配置 version_param 代表get请求参数中的关键字例如http://127.0.0.1:8000/home/?versionv1 例如若settings.py文件中配置了此url中的version_param值为version那么version就是获取版本的关键字本质上是字典的键 接下来看效果演示这里通过postman来模拟get和post请求。 首先这里我没有在URL中携带版本信息由于我在全局配置中写了默认是v1并且关键字是version因此会帮我按照这个配置信息反向生成一个url链接。 接下来的请求我会携带version参数可以看到响应成功输出api版本信息并反向生成了url 接下来我换一个关键词使用?xxv3drf会按照之前的配置默认使用v1参数 接下来我会使用不在ALLOWED_VERSIONS中的版本信息v1000程序报错不合格的版本信息
http://www.hkea.cn/news/14325017/

相关文章:

  • 建设网站对比方案免费tickle网站
  • 建设一个网站平台要多少钱哈尔滨企业建站
  • 基于p2p的网站建设成都营销类网站设计
  • 安能物流网站wordpress打折插件
  • 免费做app网站有哪些90设计网站会员全站通与电商模板的区别
  • 自己做的网站能被百度收录吗做网站与网店运营
  • 网站建设哪家公司好成都网站建设网站设计论坛
  • 重庆做兼职哪个网站网页版梦幻西游礼品码
  • 网站开发培训训高端开发网站哪家专业
  • 网站开发程序员的工资是多少建设境外网站需要什么手续
  • 长沙模板网站建设高端网站建设文案
  • 网站做301跳转的方法站长工具的使用seo综合查询运营
  • ytwzjs烟台网站建设分类信息网站成都搭建
  • 个人注册公司查询搜索 引擎优化
  • 正规网站建设空间徐州建设工程交易网站质量监督
  • 模板网站的域名是什么意思手机实用网站
  • 深圳网站优化哪家好wordpress isadmin
  • 凌晨网站建设公司英文淘宝网站建设
  • 如何避免网站被降权做宠物店网站
  • 网站建设督查报告品牌推广和市场推广的区别
  • 常德交通网站西南交通建设集团股份有限公司网站
  • 在网站上做宣传上海徐汇做网站
  • 展示型网站 数据库黑龙江恒泰建设集团网站
  • 什么网站不能备案移动端网站制作的有哪些要求
  • 海外酒店网站建设黔西南北京网站建设
  • 广州服装网站建设惠州做网站公司哪家好
  • 跨境电商在哪些网站上面做国外域名注册价格
  • 东莞公司网站做优化微信开发公司是哪个
  • 道滘镇仿做网站简历模板表格
  • 合肥网站建设设计外包自己怎么做网站的聚合页面