扫描二维码
随时随地手机看文章
作者:vivo互联网服务器团队-Song jie
方案一:The Knot 无版本——即平台的API永远只有一个版本,所有的用户都必须使用最新的API,任何API的修改都会影响到平台所有的用户。(如下图1)
方案二:Point-to-Point——点对点,即平台的API版本自带版本号,用户根据自己的需求选择使用对应的API,需要使用新的API特性,用户必须自己升级。(如下图2)
方案三:Compatible Versioning——兼容性版本控制,和The Knot一样,平台只有一个版本,但是最新版本需要兼容以前版本的API行为。(如下图3)
1)业务发展前期,作为服务提供方,服务端不仅要支撑多个版本应用商店客户端,同时服务于软件侧的PC助手;
2)产品形态变化多样,服务端接口变更和维护面临多版本客户端兼容的挑战;
3)架构逻辑上,服务端采用早期传统架构,开发和维护成本比较高;服务端与客户端进行交互的协议优化升级;以及服务拆分势在必行。
1)代码层面会存在各种判断,造成的代码可读性差,有没有更加优雅的方法;
2)存在一个客观情况。那就是客户端的版本号是存在不确定性的。由于客户端采用火车发布模式 参考[2],多版本并行开发,导致版本号存在变动、版本跳跃不连续的情况时有发生,也给服务端开发带来了不少困扰。
1)场景化:具体到什么是场景化呢,拿商店客户端的帮助用户检测手机安装的应用版本是否最新的服务举例,检测时机是存在不同的场景的,比如用户启动、用户切换wlan环境、定时检测等。当需要进行精细化分析,哪些请求是有效的,哪些会引起集中请求时,这个时候如果请求上没有场景区分,那么分析将无从下手。所以在与客户端沟通接口设计时,请带上场景这个因素。接口设计上可参考如/app/{scene}/upgrade,定义好各个场景名称,在路径上带上具体的场景,这样对线上不同来源请求量级、问题分析都会有很大好处。
2)鉴权和服务隔离:除了场景需要考虑外,接口调用在分配时做好记录和鉴权以及服务隔离。比如商店的部分接口服务不仅提供给客户端,同时也会提供给手机系统应用调用。目前vivo上亿的存量用户体量,这里要十分小心,系统应用的调用量控制不当,并发可比商店本身要大的多。首先前期与服务调用方评估沟通、做好设计,避免出问题。即使在出问题时,也要有机制能够快速发现问题、能够分析出问题的来源,降低问题带来的损失。
多战略资产管理公司平方资本 L2 Capital Management宣布,已与Google达成合作,加快其投资组合公司的可持续增长。此次合作还将推动平方资本在投资和推动各种Web3及区块链生态系统的战略。Web3通常被...
关键字: API MANAGEMENT 互联网 区块链(全球TMT2022年10月8日讯)机器人流程自动化(RPA )企业Automation Anywhere, Inc.宣布,公司已从Silicon Valley Bank、SVB Capital和Hercules Ca...
关键字: AUTOMATION AN API 机器人加利福尼亚州圣何塞2022年10月7日 /美通社/ -- 机器人流程自动化(RPA )领域的全球领先企业Automation Anywhere, Inc.今天宣布,公司已从S...
关键字: AUTOMATION AN 自动化 APITims中国与特殊目的收购公司Silver Crest Acquisition于9月28日完成合并,于9月29日在纳斯达克交易。Tims中国由咖啡连锁品牌Tim Hortons母公司RBI和笛卡尔资本集团(Cartesi...
关键字: 纳斯达克 TI ACQUISITION API