当前位置: 首页 > 面试题库 >

django-rest-framework:api版本控制

方俊
2023-03-14
问题内容

因此,围绕Google进行搜索似乎是普遍的共识,即在REST URI中嵌入版本号是一个坏习惯,也是一个坏主意。

即使在SO上,也有很强的支持者支持这一点。
例如API版本控制的最佳做法?

我的问题是关于如何完成在django-rest-framework中使用accept标头/内容协商的建议解决方案。

看起来框架中的内容协商 已经完成,
http://django-rest-framework.org/api-guide/content-negotiation/已配置为根据接受的MIME类型自动返回预期值。如果我开始对自定义类型使用Accept标头,那么我将失去框架的这种优势。

在框架中是否有更好的方法来实现这一目标?


问题答案:

一种方法是将版本控制指定为媒体类型的一部分。

这就是GitHub 当前对其API所做的工作。

你还可以在你的接受标头中包含媒体类型参数,例如Accept: application/json; version=beta,可以成功匹配JSONRenderer。然后,你可以根据自己接受的媒体类型对视图进行编码,使其行为有所不同,请参见此处。

API的版本控制有很多不同的模式,我不会说关于正确方法的共识很大,但这是一种合理的可能性。



 类似资料:
  • 版本2: 还是这样做错了?或者更常见的是创建不同的包来保存不同版本的控制器?还是有其他办法?

  • 我需要我的Node REST API进行版本控制。我正在使用swagger 2.0作为验证中间件和文档。目前,我只有一个用于所有目的的swagger yml文件。 我使用url前缀(版本号:/v1/../v2/…等)来支持节点Rest API中的版本控制。我需要在任何时候支持多个版本。 我应该为每个API版本创建一个单独的swagger yml文件吗?如果是,如何在 swagger 验证中间件中加

  • 本章提供了网络 API 的版本控制指南。由于一个 API 服务可能提供多个 API 接口),因此 API 版本控制策略适用于API 接口级别,而不适用于 API 服务)级别。 为了方便起见,术语 API 指的是以下各节中的 API 接口。 网络API应该使用语义化的版本。比如给定版本号 MAJOR.MINOR.PATCH: 当做出不兼容修改的时候,修改 MAJOR 版本号 当以向后兼容的方式添加功

  • 你要为项目做版本控制,学会为项目做版本控制,是开发者的必备技能。用的工具叫 git。 git git 是一种版本控制工具,工具的使用只是一个熟练过程。 https://git-scm.com/ 安装 可以在 git 官网下载适合自己操作系统上用的 git 。也可以使用系统包管理去安装 git,Windows 如果下载了完整版的 cmder ,里面已经包含了 git 。 Windows Window

  • 版本控制 版本管理涉及团队协作,产品质量,和产品上线。使用版本控制工具可使我们自由的做的一些几点: 回退到任意版本 查看历史版本 对比两个版本差异 版本控制系统 版本控制系统(Version Control System)是一种记录若干文件修订记录的系统,它可以帮助开发者查阅或回档至某个历史版本。 手动版本控制 LVCS 本地 CVCS 集中式(例如 SVN) DVCS 分布式(例如 Git) 手

  • 版本控制 软件配置管理, 版本控制的一个组成部分, 也称为校正控制或源码控制, 用于管理文档, 计算机程序, 大型网站和其它信息集合的变化. 变化通常被定义为一串数字或字母代码, 被称为 "版本编号", "版本标识", 或简称"版本". 举个例子, 初始的文件集合是"版本1", 当第一个改变文件时, 就变成了"版本2"等等. 每一个版本都和一个时间戳和做出改变的人联系在一起. 版本可以被比较, 恢