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

在计算机软件行业,可以看到每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. Python列出指定目录下的子目录/文件或者递归列出

    1.python只列出当前目录(或者指定目录)下的文件或者目录条目 import os files,dirs=[],[] for item in os.listdir(): if os.path.is ...

  2. 使用 mysqld_safe 启动 mysqld 服务

    目录 mysqld_safe 介绍 启动 停止 mysqld_safe 介绍 mysqld_safe is the recommended way to start a mysqld server o ...

  3. spring整合(Junit、web)

    1.整合Junit (1)整合前的测试类代码 public class Test { public static void main(String[] args) { ApplicationConte ...

  4. 报表和仪表板在线设计器Stimulsoft Designer 最新版发布

    Stimulsoft Designer是统一的Stimulsoft框架的一部分,该框架包括用于生成报表和分析数据的引擎.报表设计器和查看器. 您可以在计算机上创建报表,继续使用在线设计器在云中对其进行 ...

  5. 079 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 04 实例化对象

    079 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 04 实例化对象 本文知识点:实例化对象 说明:因为时间紧张,本人写博客过程中只是对知 ...

  6. Python下的图像处理库,你选哪个?

    奥里给~ 转载:https://blog.csdn.net/chen801090/article/details/105795068/ 在进行数字图像处理时,我们经常需要对图像进行读取.保存.缩放.裁 ...

  7. 《C++primerplus》第9章练习题

    1.(未使用原书例题)练习多文件组织.在一个头文件中定义一种学生的结构体,存储姓名和年龄,声明三个函数分别用于询问有多少个学生,输入学生的信息和展示学生的信息.在另一个源文件中给出所有函数的定义.在主 ...

  8. 最全vue的vue-amap使用高德地图插件画多边形范围

    一.在vue-cli的框架下的main.js(或者main.ts)中引入高德插件,代码如下: import Vue from 'vue' import VueAMap from 'vue-amap' ...

  9. angularCroppie

    下载 angularCroppieangularCroppie 图像Cropper使用Croppie 安装 Npm: Npm安装角croppie 使用 添加依赖项:angular.模块("m ...

  10. 《Java从入门到失业》第五章:继承与多态(5.8-5.10):多态与Object类

    5.8多态 上面我们了解了向上转型,即一个对象变量可以引用本类及子类的对象实例,这种现象称为多态(polymorphism).多态究竟有什么用呢?我们先学习一个知识点. 5.8.1方法重写 前面我们学 ...