掌握处理API版本化的窍门

日期: 2014-12-11 作者:Todd Biske翻译:邹雅玲 来源:TechTarget中国 英文

第一次尝试,很少能够定下来API的最终版本,因为,API最终版本被视为非常重要、且几乎是不可避免的一项任务。

随着时间的推移,服务接口肯定会发生变化。尽管经历过大量努力和探索后,VPI 1.0版本也很难创建出完美的接口。幸运的是,处理不可避免的API版本化决策问题并不是十分困难的事情。

API版本化并非流程问题,而是技术问题。从技术的角度来看,版本化是非常简单的一件事情。需要判断的是,这些更改是否会影响向后兼容接口。当API版本更新时,向后兼容接口同样也可以正常传输信息,而从API反馈的信息应该仍然可以再发送回去。考虑到,API用户反馈信息的行为不可控,因此,我们应该考虑使用上述功能。

一般来说,如下根请求变更是考虑过后端兼容性的:

  • 设置一个终端(例如,新型REST资源)
  • 针对于现有终端设置操作(如,当使用SOAP时)
  • 在请求接口处设置选项栏

在现有请求接口处将必填选项改为可以选择的类型

  • (无论是否可选)为反馈模块设置选项栏
  • 特别指出,如下请求变更是没有考虑后端兼容性的:
  • 在请求接口处设置必填选项
  • 在必填请求处设置预选栏
  • 去除请求或者反馈选项处的必填限制(改为可选操作)
  • 将此前需求反馈栏设置为可选性质
  • 改变请求或者反馈模块中两个选项栏之间的结构或者关系

如果一种接口可以具备后端兼容性,那么最好在恰当的位置要做一些改动。现有使用者应该继续保持以前的工作状态,如果没有必要,那么我们为什么又要进行更改呢?如果他们也不需要,我们又为什么为创建版本而付出努力呢?

如果新街口不具备后端兼容性,我们就应该放弃使用。最容易的方法是创建一种新后端,例如在 URL处设置一种版本标识。但是,如果通过请求我们可以明确的分辨出应用哪种版本的话,那么我们就可以继续使用现有后端。例如,只有当信息与版本号相连接后,我们才可以使用定制的HTTP报头,然后,你才可以根据具体的实施情况追溯相应的请求。

此时API管理系统或者网络基础设置才发挥了重要作用。网关对于大多数(如果不是全部的话)API管理平台来说是非常常见的特征。在确定API实施选择哪种版本和路由时应该设置一处网关。然而,我们要迎接的一项共同的挑战是,版本1.0也许还未具备旧版本的路由器,因此,现在我们要在多需求的情况下查找到路由器的插入点。在大多数情况下,无需更改用户末端可见性就可以实现该目标,但是,考虑到API本身的设计架构,这将会是一次复杂的变更。

API版本化中使用转移技术

只有彻底摆脱以前的操作方式时,转换技术才能发挥作用。如果你还是继续运行以前的实现方式时,那么我们可以简单地路由到正确地请求。然而,一旦不能使用以前的实现方式,那么唯一可行的机会就是拒绝请求或者将请求转移到最新的版本中进行后续处理。

迁移技术只能解决一小部分问题。即使通过转移技术我们也不能设置必填选项。然而,当必要信息没有以恰当的结构或者形式出现时,我们还是可以通过转移技术来解决这种问题。我们需要决定的是,是否还要继续使用以前的实践方式。

API现有用户非常愿意继续使用以前的实现方式,除非,需要一种新功能或者信息,否则这些用户是不会关注那些变更的。不好的地方在于,运行以前的实现方式会消耗较多的成本。要想支持越多的版本类型,设计网关逻辑时就要越复杂。这样,就可以创造一个API永不停运的先例了。

每种情况不尽相同,如何处理这种从一个圈子转换到本系列中的另外一个圈子的情况:那就是,要了解你的用户。如果你想要尽力处理好客户关系,那么你就要做到,避免让客户做任何改变。如果用户在维护和更新(包括新特征和新功能两方面的更新)方面都做的比较好,那么他们会更加愿意放弃使用旧版本。

这就是为什么要在API管理策略以及API管理解决方案评估标准中要重点考虑用固定消费者门户网站的原因了。用户回顾API文件、相关记录以及样本代码的频率是多少?多久之后才能让用户养成一种操作习惯呢?API管理中所提供的资源将会成为其与用户沟通的关键工具。

本期报导的四篇有关API设计的文章,再加上之前几期关于API管理工具功能的几篇文章,对整个生命周期中,做出正确的API抉择都有很大的帮助。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

相关推荐

  • 为多云构建高效的API管理系统

    云应用的开发几乎总是依赖一系列来自顶级供应商的服务,比如Amazon Web Services、Microsoft Azure和 Google Cloud Platform。

  • 如何使用Azure API管理服务?

    在云和微服务架构时代,API是数字化业务的通用语言。根据分析公司Forrester Research预测,仅在美国,API管理工具的支出将在未来5年内达到近30亿美元。

  • 如何创建成功的RESTful API设计

    设计好的API是一项困难的任务,存在很多主观指标。哪怕是完全拥抱RESTfulAPI设计并对其问题域拥有完整视图的小型初创企业最终也会出现命名不一致、界面模糊以及无记录语义等问题。

  • 企业应用获得成功不可或缺的力量——API

    毋庸置疑,我们已经进入到CA Technologies一直强调的应用经济时代。但是,企业若想在应用程序领域取得成功,管理好API是其必不可少的一个因素。