Api版本控制
版本控制是计算机软件行业人士使用的术语。但进化是我们所有人都要经历的事情,它适用于这个世界上的每个对象。
在计算机软件行业,可以看到每3至4年,每台计算机软件都会附带不同的发行版/版本,以满足当前/现代的要求。
版本控制是创建和管理软件产品的多个版本的实践,消费者可以根据自己的需求决定使用哪个版本,API的管理也是如此。
API的创建始终始于使应用程序与内部/外部应用程序开发人员集成的想法。就像任何其他传统软件产品一样,它总是从小规模开始,并且会随着时间而发展。让我们看下面的简单用例,以更好地理解它。
例如,我们可能希望使内部/外部应用程序开发人员能够访问客户信息,并且可能开始创建API以提供所需的功能。
作为第一个版本,您可以为API提供仅对客户信息的读取权限。后来,随着对应用程序需求的增加,您的应用程序开发人员可能会请求对客户信息的“写入/更新”访问权限。作为API创建者/开发者,您可以决定是否:
- 提供具有对客户信息的写入/更新访问权限的同一API的新版本
- 完全提供单独的API,以提供对客户信息的写入/更新访问权限
API的通用设计原则是使用第一种方法-从应用程序开发人员的角度来看,为我们提供相同功能的API的新版本,以及我们处理同一实体(客户)时的附加功能。这将导致具有相同API的2个版本:
• CustomerInfo v1.0-提供对客户信息的只读访问
• CustomerInfo v2.0 —提供对客户信息的读/写/更新访问
通过API的版本控制,CustomerInfo API的使用者可以根据需要决定使用哪个版本。
当我们想支持同一个API的多个版本时,作为API创建者/设计者,我们需要考虑以下02个主要设计决策:
• 指定API版本信息的格式是什么
• 消费者将如何指定所选API的API版本
选择用于指定版本信息的格式时,可以选择以下02种常见做法:
• 使用发布/构建日期-这允许使用发布/构建日期来唯一标识每个版本。
示例—版本=“ 20200808” | 版本=“ 20190102”
• 使用major.minor数字 -这些数字用于指定同一API的不同版本,并且该数字可以包含1或2或3位数字作为版本号的一部分。一些API开发人员使用“ v”前缀来表示它是版本号。
示例— version =“ 1” | 版本=“ v1” | 版本=“ 1.1” | 版本=“ v1.1” | 版本=“ 1.1.1” | 版本=“ v1.1.1”
在决定使用者如何指定版本信息时,可以从以下03种常见做法中进行选择:
• HTTP标头-自定义HTTP标头将用于传递API版本信息
示例— x-customerinfoapi-version:2.1
• 查询参数-API版本信息将作为查询参数传递
示例-/customerinfo?version=2.1
• URL -API版本信息将合并到URL本身
示例-/ v2 / customerinfo
作为API的创建者/开发者,我们还可以结合上面的一些方法,并提供用于提供API版本信息的混合方法。例如,我们可以使用URL方法来指定主要版本,而可以使用HTTP标头方法来指定API的次要版本。
如您所见,API版本控制是API设计/开发中的关键功能,并且作为API提供程序,使消费者能够在不同的API版本之间进行选择是关键的业务差异。
Api版本控制的更多相关文章
- ****Web API 版本控制的几种方式
个人建议:用content type,即放在Header里面!比如加一个Version:1.4.3 这篇文章写得很好,介绍了三种实现web api版本化的三种方式.我从评论里又收集到两种方式,所以一共 ...
- ASP.NET Core API 版本控制
几天前,我和我的朋友们使用 ASP.NET Core 开发了一个API ,使用的是GET方式,将一些数据返回到客户端 APP.我们在前端进行了分页,意味着我们将所有数据发送给客户端,然后进行一些dat ...
- asp.net web api 版本控制
版本控制 版本控制的方法有很多,这里提供一种将Odata与普通web api版本控制机制统一的方法,但也可以单独控制,整合控制与单独控制主要的不同是:整合控制通过VersionController ...
- .Net Core中的Api版本控制
原文链接:API Versioning in .Net Core 作者:Neel Bhatt 简介 Api的版本控制是Api开发中经常遇到的问题, 在大部分中大型项目都需要使用到Api的版本控制 在本 ...
- 【转】.Net Core中的Api版本控制
原文链接:API Versioning in .Net Core 作者:Neel Bhatt 简介 Api的版本控制是Api开发中经常遇到的问题, 在大部分中大型项目都需要使用到Api的版本控制 在本 ...
- 微服务设计 - api版本控制
要描述了几种API版本控制的方法.用户可以查询原始的API,或者添加定制的头文件来接收特定的版本.如果应用程序收到一个重大修订,将URI修改为V2.在进行迭代改进时,将创建与更改日期相一致的端点,并允 ...
- 【转】ASP.NET Core API 版本控制
几天前,我和我的朋友们使用 ASP.NET Core 开发了一个API ,使用的是GET方式,将一些数据返回到客户端 APP.我们在前端进行了分页,意味着我们将所有数据发送给客户端,然后进行一些dat ...
- API 版本控制的几种方式
个人建议:用content type,即放在Header里面!比如加一个Version:1.4.3 这篇文章写得很好,介绍了三种实现web api版本化的三种方式.我从评论里又收集到两种方式,所以一共 ...
- 【ASP.NET Core】ASP.NET Core API 版本控制
几天前,我和我的朋友们使用 ASP.NET Core 开发了一个API ,使用的是GET方式,将一些数据返回到客户端 APP.我们在前端进行了分页,意味着我们将所有数据发送给客户端,然后进行一些dat ...
- .net core 实现 api网关 进行 api版本控制
场景: 由一次大的项目改动引起的app端api不兼容问题,这时候就需要对api做版本控制了,权衡之后因为用户不多,选择了强更,没人想在已经写了8000行代码的单个svc文件中维护好几个版本的接口或者继 ...
随机推荐
- list、set、map的区别和联系
结构特点 List和Set是存储单列数据的集合,Map是存储键值对这样的双列数据的集合: List中存储的数据是有顺序的,并且值允许重复:Map中存储的数据是无序的,它的键是不允许重复的,但是值是允许 ...
- 趣图:普通人讲故事 VS 程序员讲故事
扩展阅读 趣图:我说自己菜 vs 大佬说自己菜 趣图:客户需求VS客户预算 趣图:在外行人眼中的程序员 如何处理前任程序员留下的代码 一个故事讲清楚NIO
- Processing 高效控制管理图形方法(一)
之前在CSDN上发表过: https://blog.csdn.net/fddxsyf123/article/details/62456299
- IP地址的获取
//ip地址的获取:非原创,之前在其他地方看到,拿过来备份下: public static String getIPAddress(HttpServletRequest request) { Stri ...
- springboot+mybatis集成分页功能
1.使用idea搭建srpingboot项目 在pom.xml文件中引入如下的依赖: <dependency> <groupId>org.springframework.boo ...
- Python 3 入门,看这篇就够了(超全整理)
史上最全Python资料汇总(长期更新).隔壁小孩都馋哭了 --- 点击领取 今天和大家分享的内容是Python入门干货,文章很长. 简介 Python 是一种高层次的结合了解释性.编译性.互动性和面 ...
- 重拾H5小游戏之入门篇(二)
上一篇,水了近千字,很酸爽,同时表达了"重拾"一项旧本领并不容易,还有点题之效果.其实压缩起来就一句话:经过了一番记忆搜索,以及try..catch的尝试后,终于选定了Phaser ...
- MyBatis 进阶,MyBatis-Plus!(基于 Springboot 演示)
这一篇从一个入门的基本体验介绍,再到对于 CRUD 的一个详细介绍,在介绍过程中将涉及到的一些问题,例如逐渐策略,自动填充,乐观锁等内容说了一下,只选了一些重要的内容,还有一些没提及到,具体可以参考官 ...
- What number should I guess next ?——由《鹰蛋》一题引发的思考
What number should I guess next ? 这篇文章的灵感来源于最近技术部的团建与著名的DP优化<鹰蛋>.记得在一个月前,查到鹰蛋的题解前,我在与同学讨论时,一直试 ...
- 081 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 06 new关键字
081 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 06 new关键字 本文知识点:new关键字 说明:因为时间紧张,本人写博客过程中只是 ...