版本控制是计算机软件行业人士使用的术语。但进化是我们所有人都要经历的事情,它适用于这个世界上的每个对象。

在计算机软件行业,可以看到每3至4年,每台计算机软件都会附带不同的发行版/版本,以满足当前/现代的要求。

版本控制是创建和管理软件产品的多个版本的实践,消费者可以根据自己的需求决定使用哪个版本,API的管理也是如此。

API的创建始终始于使应用程序与内部/外部应用程序开发人员集成的想法。就像任何其他传统软件产品一样,它总是从小规模开始,并且会随着时间而发展。让我们看下面的简单用例,以更好地理解它。

例如,我们可能希望使内部/外部应用程序开发人员能够访问客户信息,并且可能开始创建API以提供所需的功能。

作为第一个版本,您可以为API提供仅对客户信息的读取权限。后来,随着对应用程序需求的增加,您的应用程序开发人员可能会请求对客户信息的“写入/更新”访问权限。作为API创建者/开发者,您可以决定是否:

  1. 提供具有对客户信息的写入/更新访问权限的同一API的新版本
  2. 完全提供单独的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版本控制的更多相关文章

  1. ****Web API 版本控制的几种方式

    个人建议:用content type,即放在Header里面!比如加一个Version:1.4.3 这篇文章写得很好,介绍了三种实现web api版本化的三种方式.我从评论里又收集到两种方式,所以一共 ...

  2. ASP.NET Core API 版本控制

    几天前,我和我的朋友们使用 ASP.NET Core 开发了一个API ,使用的是GET方式,将一些数据返回到客户端 APP.我们在前端进行了分页,意味着我们将所有数据发送给客户端,然后进行一些dat ...

  3. asp.net web api 版本控制

    版本控制   版本控制的方法有很多,这里提供一种将Odata与普通web api版本控制机制统一的方法,但也可以单独控制,整合控制与单独控制主要的不同是:整合控制通过VersionController ...

  4. .Net Core中的Api版本控制

    原文链接:API Versioning in .Net Core 作者:Neel Bhatt 简介 Api的版本控制是Api开发中经常遇到的问题, 在大部分中大型项目都需要使用到Api的版本控制 在本 ...

  5. 【转】.Net Core中的Api版本控制

    原文链接:API Versioning in .Net Core 作者:Neel Bhatt 简介 Api的版本控制是Api开发中经常遇到的问题, 在大部分中大型项目都需要使用到Api的版本控制 在本 ...

  6. 微服务设计 - api版本控制

    要描述了几种API版本控制的方法.用户可以查询原始的API,或者添加定制的头文件来接收特定的版本.如果应用程序收到一个重大修订,将URI修改为V2.在进行迭代改进时,将创建与更改日期相一致的端点,并允 ...

  7. 【转】ASP.NET Core API 版本控制

    几天前,我和我的朋友们使用 ASP.NET Core 开发了一个API ,使用的是GET方式,将一些数据返回到客户端 APP.我们在前端进行了分页,意味着我们将所有数据发送给客户端,然后进行一些dat ...

  8. API 版本控制的几种方式

    个人建议:用content type,即放在Header里面!比如加一个Version:1.4.3 这篇文章写得很好,介绍了三种实现web api版本化的三种方式.我从评论里又收集到两种方式,所以一共 ...

  9. 【ASP.NET Core】ASP.NET Core API 版本控制

    几天前,我和我的朋友们使用 ASP.NET Core 开发了一个API ,使用的是GET方式,将一些数据返回到客户端 APP.我们在前端进行了分页,意味着我们将所有数据发送给客户端,然后进行一些dat ...

  10. .net core 实现 api网关 进行 api版本控制

    场景: 由一次大的项目改动引起的app端api不兼容问题,这时候就需要对api做版本控制了,权衡之后因为用户不多,选择了强更,没人想在已经写了8000行代码的单个svc文件中维护好几个版本的接口或者继 ...

随机推荐

  1. Orchard Core创建CMS/Blog站点

    安装.NET Core SDK 下载并安装当前最新版本.NET Core SDK 3.1: https://dotnet.microsoft.com/download 安装visual studio ...

  2. 基于gis的系统开发,程序运行出现问题 ArcGIS product not specified.You must first bind to an ArcGIS version prior to using any ArcGIS components.

    在之前初始化的时候添加下面的一行代码:ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.EngineOrDesktop);还需要添加一个引 ...

  3. 灵感来袭,基于Redis的分布式延迟队列(续)

    背景 上一篇(灵感来袭,基于Redis的分布式延迟队列)讲述了基于Java DelayQueue和Redis实现了分布式延迟队列,这种方案实现比较简单,应用于延迟小,消息量不大的场景是没问题的,毕竟J ...

  4. 使用SSM框架实现Sql数据导出成Excel表

    SSM框架实现SQL数据导出Excel 思路 首先在前端页面中添加一个导出功能的button,然后与后端controller进行交互. 接着在相应的controller中编写导出功能方法. 方法体: ...

  5. 【Java】socket编程,输入输出中的问题

    BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream())); PrintWri ...

  6. Java知识系统回顾整理01基础05控制流程04 for

    一.for 比较for和while public class HelloWorld { public static void main(String[] args) { //使用while打印0到4 ...

  7. Java数组以及内存分配

    Java数组以及内存分配 什么数组(简) 数组初始化 动态初始化 静态初始化 内存分配问题(重) 数组操作的两个常见小问题 什么是数组: 定义格式: 数组类型 [] 数组名 ; 如:常用格式,其他方式 ...

  8. JavaScript格式化返回当前日期和时间

    要求: 返回当前日期和时间,如 2020年10月06日 星期二 下午08点15分35秒 代码实现: function getDate() { var date = new Date(); var ye ...

  9. 项目使用eslint

    今天eslint版本更新了,然后昂,有些奇奇怪怪的错误提示了,然后想,这我得 1.配置一个保存时根据eslint规则自动修复 2.欸,之前编码遇到未使用的变量都会有标记黄线,我很好定位,这会怎么没了 ...

  10. C# 生成chart图表的三种方式

    .net中,微软给我们提供了画图类(system.drawing.imaging),在该类中画图的基本功能都有.比如:直线.折线.矩形.多边形.椭圆形.扇形.曲线等等,因此一般的图形都可以直接通过代码 ...