【API生命周期看护】API日落

一、基本概念

在API的整个生命周期中,不可能是永远不变的。功能可能有变动、服务也可能有升级迭代,这个时候对外的能力入口:API自然也需要改变。

一般来说,API的变动是不可以引入兼容性问题的,也即不管做什么变动,已经在使用的用户在不改变使用方式的前提下,是必须无感知的:假如接口需要新增一些必选参数、改变url等,则必须要通过版本迭代的方法提供N+1版本的接口,在保持老接口不变的情况下,为客户提供新接口、并引导存量服务使用起新接口。

在这期间,我们就需要开始进行API的日落流程,最终将API彻底下线。

二、日落流程

日落流程主要分成三个部分:计划阶段、准备阶段,以及实施阶段,这三个阶段的注意事项我们分别接单看下。

1、计划阶段

(1)识别待下线接口,制定下线计划

在API下线前,服务需对API做梳理与识别,并制定相关下线计划:

  • 下线原因
  • 最近12个月的调用量说明
  • 影响范围与相关评估
  • 替代方案
  • 正式下线时间
  • 采用下线策略
  • 与客户的沟通方法

(2)评审下线计划

在服务完成下线API的梳理与计划制定后,需首先在产品团队内部进行相关评审,在评审通过后,还需在三级部门API TMG进行进一步的下线合理性评审。
在完成相关评审之后,服务才可进行接下来的API下线准备工作。

2、准备阶段

(1)发布下线公告

服务需要在官方网站里发布对应的API下线公告,内容应当包含API的下线时间、下线接口、替代接口等内容。

(2)更新API参考资料

服务需在API资料文档部分,同步更新API信息与状态,说明API为废弃状态、计划下线时间,并且给出后续的替代API。
同时,应当在API文档中也增加API公告章节,便于用户获取API关键信息。

(3)增加计算机可感知API废弃告警

服务在接口的调用层面,应当在Header中添加Deprecated信息:

  • X-API-Deprecation-Date:需提供API的具体废弃日期,在该日期后API可能会被下线删除;
  • X-API-Deprecation-Info:需提供访问链接,指向关于废弃API的处理方法以及后续方案;

(4)监控API使用并周期性提醒用户

在API用户完全切换到新接口之前,需要保持原有接口的稳定性与可用性,同时还需要监控API当前调用量与调用者,定期通知用户尽快完成切换。

3、实施阶段

(1)API下线实施前评审

API实施下线前提:

  • API实施下线需在公告发布12个月之后,并且至少3个月之内接口无用户调用记录;
  • 实施下线前需要再次经过API TMG评审;

(2)API下线实施操作

API下线需要将API从网关中删除,并将API文档、SDK、示例代码等内容全部下线。

(3)发布API下线公告

有始有终,API下线后同样要在官网发布API下线公告。

三、小结

至此,API的全生命周期就走到了结尾,崭新的API也即将诞生,这就是API的一生。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/30753.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UDP简介

UDP 1. UDP格式2. UDP特点3. 差错检验 1. UDP格式 16位UDP长度,表示整个数据报(UDP首部UDP数据)的最大长度; 如果校验和出错,就会直接丢弃; 2. UDP特点 无连接: 知道对端的IP和端口号就直接进行传输,不需…

idea使用protobuf

本文参考:https://blog.csdn.net/m0_37695902/article/details/129438549 再次感谢分享 什么是 protobuf ? Protocal Buffers(简称protobuf)是谷歌的一项技术,用于结构化的数据序列化、反序列化。 由于protobuf是跨语言的,所以用…

xxx酒业有限责任公司突发环境事件应急预案WORD

导读:原文《xxx酒业有限责任公司突发环境事件应急预案word》(获取来源见文尾),本文精选其中精华及架构部分,逻辑清晰、内容完整,为快速形成售前方案提供参考。 目 录 1 总则 1.1 编制目的 1.2 编制…

【vue3】基础知识点-pinia

学习vue3,都会从基础知识点学起。了解setup函数,ref,recative,watch、computed、pinia等如何使用 今天说vue3组合式api,pinia 戳这里,跳转pinia中文文档 官网的基础示例中提供了三种写法 1、选择式api&a…

python进阶

目录 Json数据格式 前言 JSON格式 python数据和Json数据的相互转化 网络编程 套接字 socket服务端编程步骤 socket客户端编程步骤 python操作mysql数据库 查询并接收数据 数据插入 Json数据格式 前言 JSON是一种轻量级的数据交换格式,可以按照JSON指定…

【福建事业单位-资料分析】04 倍数、特殊增长率

【福建事业单位-资料分析】04 倍数、特殊增长率 一、倍数1.1现期倍数1.2 基期倍数总结 二、特殊增长率2.1 间隔增长率间隔倍数和间隔基期(都要先求得间隔增长率r) 2.2 年均增长率年均增长率的比较年均增长率计算-居中代入 2.3 混合增长率总结 三、总结 一…

E. Power of Points - 思维

分析: 题意本质就是找点在数组中任意一个位置时和所有的端点之间的距离和,但是直接暴力会超时,可以对数组排个序,设当前遍历的是xi,那么此时求的到各端点的距离就是j从1 ~ i - 1的所有端点与xi的距离之和,也…

AcWing 1564:哈希 ← 只具有正增量的二次探测法

【题目来源】https://www.acwing.com/problem/content/1566/【题目描述】 将一个由若干个不同正整数构成的整数序列插入到一个哈希表中,然后输出输入数字的位置。 哈希函数定义为 H(key)key%TSize,其中 TSize 是哈希表的最大大小。 利用只具有正增量的二…

配置nginx服务端口时-在同一个页面中打开多个地址端口-查看服务情况

1&#xff1a;把代码保存到xxx.html文件中 2&#xff1a;因为一个个端口打开查看&#xff0c;实在太麻烦了 3&#xff1a;在一个页面中查看多页的响应才能提高测试效率 <html><head><title>本地连接列表</title> </head><body><cente…

【C语言学习】函数的定义和调用

一、函数定义 要有返回类型、函数名和函数体 二、调用函数 函数名&#xff08;函数值&#xff09;&#xff1b; &#xff08;&#xff09;起到表示函数调用的重要作用&#xff0c;即使没有参数也需要&#xff08;&#xff09; 若有参数&#xff0c;则需要给出正确的数量和顺序…

vscode ssh远程的config/配置文件无法保存解决

问题 之前已经有了一个config&#xff0c;我想更改连接的地址和用户名&#xff0c;但是无法保存&#xff0c;显示需要管理员权限&#xff0c;但以管理员启动vscode或者以管理员权限保存都不行 未能保存“config”: Command failed: “D:\vscode\Microsoft VS Code\bin\code.c…

『PostgreSQL』在 PostgreSQL中创建只读权限和读写权限的账号

&#x1f4e3;读完这篇文章里你能收获到 理解在 PostgreSQL 数据库中创建账号的重要性以及如何进行账号管理掌握在 PostgreSQL 中创建具有只读权限和读写权限的账号的步骤和方法学会使用 SQL 命令来创建账号、为账号分配适当的权限以及控制账号对数据库的访问级别了解如何确保…

ES嵌套查询和普通查询的高亮显示区别

在 Elasticsearch 中&#xff0c;高亮显示是一种强大的搜索结果可视化工具&#xff0c;它可以帮助我们快速识别匹配的关键字或短语。在ES中&#xff0c;我们可以使用两种不同的查询方式来实现高亮显示&#xff1a;嵌套查询和普通查询。本文探讨这两种查询方式的高亮显示区别以及…

C++友元函数和友元类的使用

1.友元介绍 在C中&#xff0c;友元&#xff08;friend&#xff09;是一种机制&#xff0c;允许某个类或函数访问其他类的私有成员。通过友元&#xff0c;可以授予其他类或函数对该类的私有成员的访问权限。友元关系在一些特定的情况下很有用&#xff0c;例如在类之间共享数据或…

​朋友圈评论截图生成,制作朋友圈网页​

朋友圈头像&#xff0c;上传自己的朋友圈头像&#xff1b;不填默认随机 网名&#xff0c;填写微信昵称&#xff1b; 内容&#xff0c;需要发布的微信正文内容&#xff1b; 截图类型&#xff0c;支持纯文字、图片&#xff08;单张、九宫格&#xff09;、分享网页/公众号文章共…

初阶C语言-操作符详解(下)

&#x1f31e; “等春风得意&#xff0c;等时间嘉许&#xff01;” 接下来&#xff0c;我们把操作符没学完的继续学完&#xff01; 操作符详解 6.2sizeof和数组 7.关系操作符8.逻辑操作符9.条件操作符10.逗号表达式11.下标引用、函数调用和结构成员12.表达式求值12.1隐式类型转…

[FPAG开发]使用Vivado创建第一个程序

1 打开Vivado软件&#xff0c;新建项目 选择一个纯英文路径 选择合适的型号 产品型号ZYNQ-7010xc7z010clg400-1ZYNQ-7020xc7z010clg400-2 如果型号选错&#xff0c;可以单击这里重新选择 2 创建工程源文件 可以看到文件创建成功 双击文件打开&#xff0c;插入代码 modul…

手机突然无法获取ip地址

在日常生活中&#xff0c;我们对手机的依赖越来越大&#xff0c;尤其是在联网方面。然而&#xff0c;有时候我们可能会遇到手机无法获取IP地址的问题&#xff0c;这给我们的正常使用带来了很多不便。当我们的手机无法获得IP地址时&#xff0c;我们将无法连接到互联网或局域网&a…

react中的formik如何使用

介绍&#xff1a; Formik 是一个用于处理表单状态和验证的 React 库。它提供了一种简化和统一的方式来处理复杂的表单逻辑&#xff0c;包括表单值的管理、表单验证、表单提交和错误处理等。 使用 安装 Formik 和 Yup&#xff08;用于表单验证&#xff09;&#xff1a; // ba…

[保研/考研机试] KY30 进制转换-大整数转二进制 清华大学复试上机题 C++实现

描述 将一个长度最多为30位数字的十进制非负整数转换为二进制数输出。 输入描述&#xff1a; 多组数据&#xff0c;每行为一个长度不超过30位的十进制非负整数。 &#xff08;注意是10进制数字的个数可能有30个&#xff0c;而非30bits的整数&#xff09; 输出描述&#xff…