[发明专利]一种网络应用程序接口升级的方法及系统有效

专利信息
申请号: 201310217643.7 申请日: 2013-06-03
公开(公告)号: CN104216724B 公开(公告)日: 2018-01-02
发明(设计)人: 张先武 申请(专利权)人: 阿里巴巴集团控股有限公司
主分类号: G06F9/445 分类号: G06F9/445
代理公司: 北京国昊天诚知识产权代理有限公司11315 代理人: 许志勇
地址: 英属开曼群岛大开*** 国省代码: 暂无信息
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 网络 应用程序 接口 升级 方法 系统
【说明书】:

技术领域

本申请涉及互联网领域,尤其涉及一种网络应用程序接口升级的方法及系统。

背景技术

在开放平台领域,Web API(网络应用程序接口)一旦发布上线后,会被大量的外部应用调用,而发布后的Web API由于新增功能或者修复缺陷等原因不可避免的需要进行升级,然而,对于已发布的Web API进行升级,会带来以下三个问题:1)对于兼容性升级,如何做到对外部应用的透明性,即,在不强迫外部应用改变原有Web API调用方式的前提下,使兼容性升级自动生效,同时对于内部网关来说,又可以区分兼容性升级前后的Web API,以便做不同的内部处理;2)对于非兼容性升级,如何做到升级前和升级后的Web API的隔离性,既不影响那些已经调用升级前的Web API的外部应用的正常运行,同时,又能由外部应用自行选择是否调用升级后的Web API;3)如何做到线上测试环境和线上正式环境的Web API隔离以及切换,即,在线上测试环境中,可以使用线上真实的请求对升级后的Web API进行测试验证,而在测试期间,线上正式环境仍然使用升级前的Web API,测试通过发布后,线上正式环境使用的Web API自动切换为升级后的版本。

目前的Web API升级方法主要有以下三种方案:第一种是升级后采用新的Web API名称;第二种是给Web API加一个版本属性,升级后更新版本号,应用调用时需要同时传递Web API名称和版本号两个信息;第三种是升级后不改变Web API的任何标示信息,包括名称和版本等。

现有的技术方案的第一种和第二种,因为每次升级后都会更新Web API的标示信息(第一种改变名称信息,第二种改变版本信息),而Web API的标示信息恰恰包含在外部应用的请求参数中,因此,升级后会影响已有应用对Web API原有的使用方式。例如,对于现有的第一种方案,由于每次Web API升级后都会修改名称,这会导致Web API名称泛滥,并且,有些Web API的名称代表了该Web API特定的功能、作用等,改变名称后,无法体现出Web API的内在含义。对于现有的第二种方案,例如,原来的外部应用调用方式如下:https://openapi.xxxxx.com/gateway.do?method=abcd.efgh.hijk&version=1.0&us er_id=2012123456789123,Web API进行兼容性升级后版本号变为2.0,那么对于已有的应用,如果不能接受这个缺陷,就必须将原来的Web API调用参数中的版本号由1.0改为2.0,即,调用方式改变为:https://openapi.xxxxx.com/gateway.do?method=abcd.efgh.hijk&version=2.0&us er_id=2012123456789123。而这对于兼容性升级来说,是不可接受的,因为一旦该Web API已被大量的外部应用使用后,再强迫所有的这些应用进行改造的代价是巨大的。

现有方案的第三种,对于兼容性升级,虽然对外部应用来说是透明的,但由于升级前和升级后的Web API的标示信息是完全相同的,对内部的网关来说升级前后的Web API是无法区分的,网关无法针对升级前和升级后的Web API做不同的处理,例如,网关无法将升级前和升级后的Web API路由到不同的目标系统。另外,兼容性升级前后的Web API的返回结果可能会出现不一样,譬如升级后的Web API的返回结果增加了一个返回属性,外部应用的开发者可能就会感到疑惑,因为开发者从返回结果中无从知道Web API是否进行过兼容性升级,不利于快速排查问题;而对于非兼容性升级,是不可接受的。例如,某Web API返回的结果里包含有用户的邮箱地址属性,原来这个属性是一个字符串类型:{“email”:”xxx@x.com”},应用以字符串的方式使用该属性。之后,由于用户可以有多个邮箱地址,因此对该Web API进行非兼容性升级,将邮箱地址属性改为列表类型{“email”:[“xxx@x.com”,“yyy@x.com”]},那么就会破坏原来以字符串方式使用该属性的应用的运行。

同时,由于线上测试环境和线上正式环境使用的是同一份数据,采用上述三种方法对Web API进行升级后,会立即同时影响线上测试环境和线上正式环境,因此无法做到线上测试环境和线上正式环境之间的Web API隔离,一旦升级后的Web API引发比较严重的缺陷,会给线上正式环境带来很大的影响。

发明内容

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201310217643.7/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top