当前位置: 首页 > news >正文

【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的一生。

相关文章:

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

一、基本概念 在API的整个生命周期中,不可能是永远不变的。功能可能有变动、服务也可能有升级迭代,这个时候对外的能力入口:API自然也需要改变。 一般来说,API的变动是不可以引入兼容性问题的,也即不管做什么变动&am…...

PHP 使用ThinkPHP实现电子邮件发送示例

文章目录 首先我们需要设置我们的邮箱客户端授权,获取到授权码找到我们的邮箱设置去账号中找到这一堆服务,找到后开启smtp服务开启服务后管理服务 接下来需要去下载相应的第三方类库(我这里使用的是PHPMailer)在thinkPHP中封装一下邮件服务类实际调用效果…...

Leetcode-每日一题【剑指 Offer 18. 删除链表的节点】

题目 给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。 返回删除后的链表的头节点。 注意:此题对比原题有改动 示例 1: 输入: head [4,5,1,9], val 5输出: [4,1,9]解释: 给定你链表中值为 5 的第二个节点,那么在调…...

[LINUX使用] top 命令的使用

COLUMNS150 LINES100 top 序号 是否为启动命令 命令模板 详解 1 no vh 帮助 2 yes -d 0.01 0.01秒的间隔刷新top输出 3 no c COMMAND列切换 4 yes -e [k | m | g | t | p] 以何种计量单位显示内存列 k-kb,m-mb,g-gb,t-t…...

通过redis进行缓存分页,通过SCAN扫描进行缓存更新

问题:当我们要添加缓存时,如果我们用了PageHelper时,PageHelper只会对查询语句有效(使用到sql的查询),那么如果我们把查询到的数据都添加到缓存时,就会无法进行分页; 此时我们选择将…...

C#小轮子 Debug,Release,发布模式如何运行不同的代码

文章目录 前言C#运行模式运行模式介绍三种模式区分代码 前言 编译模式和发布模式的代码不一样是非常正常的。比较常见的是数据库不一样。编译测试数据库和发布真实的数据库地址不一样。 C#运行模式 运行模式介绍 运行模式有三种: Debug 不进行优化,…...

【【萌新的STM32 学习-6】】

萌新的STM32 学习-6 BSP 文件夹,用于存放正点原子提供的板级支持包驱动代码,如:LED、蜂鸣器、按键等。 本章我们暂时用不到该文件夹,不过可以先建好备用。 CMSIS 文件夹,用于存放 CMSIS 底层代码(ARM 和 ST…...

“深入解析JVM:探索Java虚拟机的工作原理“

标题:深入解析JVM:探索Java虚拟机的工作原理 摘要:本文将深入解析Java虚拟机(JVM)的工作原理,从字节码到执行过程,从内存模型到垃圾回收机制,逐步剖析JVM的核心组成部分和工作原理。…...

【目标检测系列】YOLOV2解读

为更好理解YOLOv2模型,请先移步,了解YOLOv1后才能更好的理解YOLOv2所做的改进。 前情回顾:【目标检测系列】YOLOV1解读_怀逸%的博客-CSDN博客 背景 通用的目标检测应该具备快速、准确且能过识别各种各样的目标的特点。自从引入神经网络以来&a…...

【深入浅出程序设计竞赛(基础篇)第一章 算法小白从0开始】

深入浅出程序设计竞赛&#xff08;基础篇&#xff09;第一章 算法小白从0开始 第一章 例题例1-1例1-2例1-3例1-4例1-5例1-6例1-7例1-8例1-9例1-10例1-11 第一章 课后习题1-11-21-31-4 第一章 例题 例1-1 #include<iostream> using namespace std;int main(){cout <&…...

openGauss学习笔记-36 openGauss 高级数据管理-TRUNCATE TABLE语句

文章目录 openGauss学习笔记-36 openGauss 高级数据管理-TRUNCATE TABLE语句36.1 语法格式36.2 参数说明36.3 示例 openGauss学习笔记-36 openGauss 高级数据管理-TRUNCATE TABLE语句 清理表数据&#xff0c;TRUNCATE TABLE用于删除表的数据&#xff0c;但不删除表结构。也可以…...

ChatGPT生成文本检测器算法挑战大赛

ChatGPT生成文本检测器算法挑战大 比赛链接&#xff1a;2023 iFLYTEK A.I.开发者大赛-讯飞开放平台 (xfyun.cn) 1、数据加载和预处理 import numpy as np import pandas as pd from sklearn.model_selection import train_test_split, cross_val_predict from sklearn.linea…...

O2OA开发平台实施入门指南

O2OA&#xff08;翱途&#xff09;开发平台&#xff0c;是一款适用于协同办公系统开发与实施的基础平台&#xff0c;说到底&#xff0c;它也是一款快速开发平台。开发者可以基于平台提供的能力完成门户、流程、信息相关的业务功能开发。 既然定位为开发平台&#xff0c;那么开…...

服装行业多模态算法个性化产品定制方案 | 京东云技术团队

一、项目背景 AI赋能服装设计师&#xff0c;设计好看、好穿、好卖的服装 传统服装行业痛点 • 设计师无法准确捕捉市场趋势&#xff0c;抓住中国潮流 • 上新周期长&#xff0c;高库存滞销风险大 • 基本款居多&#xff0c;难以满足消费者个性化需求 解决方案 • GPT数据…...

MySQL表空间结构与页、区、段的定义

文章目录 一、概念引入1、页2、区3、段 二、页的结构1、File Header2、FIle Trailer 三、区的结构1、分类2、XDES Entry3、XDES Entry链表 四、段的结构五、独立表空间1、FSP_HDR页2、XDES页3、IBUF_BITMAP页4、INODE页5、INDEX页 六、系统表空间 一、概念引入 1、页 InnoDB是…...

RaabitMQ(三) - RabbitMQ队列类型、死信消息与死信队列、懒队列、集群模式、MQ常见消息问题

RabbitMQ队列类型 Classic经典队列 这是RabbitMQ最为经典的队列类型。在单机环境中&#xff0c;拥有比较高的消息可靠性。 经典队列可以选择是否持久化(Durability)以及是否自动删除(Auto delete)两个属性。 Durability有两个选项&#xff0c;Durable和Transient。 Durable表…...

Unity3D GPU Selector/Picker

Unity3D GPU Selector/Picker 一、概述 1.动机 Unity3D中通常情况下使用物理系统进行物体点击选择的基础&#xff0c;对于含大量对象的场景&#xff0c;添加Collider组件会增加内容占用&#xff0c;因此使用基于GPU的点击选择方案 2.实现思路 对于场景的每个物体&#xff0c;…...

灰度非线性变换之c++实现(qt + 不调包)

本章介绍灰度非线性变换&#xff0c;具体内容包括&#xff1a;对数变换、幂次变换、指数变换。他们的共同特点是使用非线性变换关系式进行图像变换。 1.灰度对数变换 变换公式&#xff1a;y a log(1x) / b&#xff0c;其中&#xff0c;a控制曲线的垂直移量&#xff1b;b为正…...

轻量级Web框架Flask

Flask-SQLAlchemy MySQL是免费开源软件&#xff0c;大家可以自行搜索其官网&#xff08;https://www.MySQL.com/downloads/&#xff09; 测试MySQL是否安装成功 在所有程序中&#xff0c;找到MySQL→MySQL Server 5.6下面的命令行工具&#xff0c;然后单击输入密码后回车&am…...

【gridsample】地平线如何支持gridsample算子

文章目录 1. grid_sample算子功能解析1.1 理论介绍1.2 代码分析1.2.1 x,y取值范围[-1,1]1.2.2 x,y取值范围超出[-1,1] 2. 使用grid_sample算子构建一个网络3. 走PTQ进行模型转换与编译 实操以J5 OE1.1.60对应的docker为例 1. grid_sample算子功能解析 该段主要参考&#xff1a;…...

MedGemma 1.5效果展示:对‘慢性肾病贫血管理’的ESA使用指征→铁状态评估→给药路径推演

MedGemma 1.5效果展示&#xff1a;对‘慢性肾病贫血管理’的ESA使用指征→铁状态评估→给药路径推演 1. 引言&#xff1a;当AI遇见临床诊疗路径 想象一下&#xff0c;你是一位肾内科医生&#xff0c;面对一位慢性肾病&#xff08;CKD&#xff09;合并贫血的患者。你需要快速梳…...

大厂 HR 直言:IT 简历里最加分的 3 个项目类型,别乱写

每年金三银四、秋招旺季&#xff0c;我作为大厂HR&#xff0c;每天要刷几百份IT简历&#xff0c;平均每份停留不超过10秒。很多程序员明明技术不错&#xff0c;却因为项目写得乱七八糟&#xff0c;直接被ATS系统筛掉&#xff0c;连面试机会都没有。重点说一句&#xff1a;IT简历…...

一文搞懂:如何用 Spring AI 搭建 MCP Server 和 Client

MCP 概述 Model Context Protocol&#xff08;MCP&#xff09; 是一套标准化协议&#xff0c;用于实现 AI 模型与外部工具或资源的交互。它提供一致的接口&#xff0c;使 AI 模型能够访问数据库、API、文件系统及其他外部服务&#xff0c;同时支持多种传输机制&#xff0c;满足…...

DashIO SAMD NINA:嵌入式IoT的跨协议可视化通信框架

1. DashIO SAMD NINA 库技术解析&#xff1a;面向嵌入式设备的跨协议 IoT 可视化通信框架1.1 项目定位与工程价值DashIO SAMD NINA 是一个专为 Arduino SAMD 平台&#xff08;如 Adafruit Metro M0、SparkFun SAMD21 Breakout、Arduino MKR 系列&#xff09;设计的轻量级通信库…...

使用C#代码在 Word 文档中插入数学公式

Word 文档中的数学公式是表达数学概念和关系的重要工具。无论您是在撰写学术论文、科学报告&#xff0c;还是其他涉及数学内容的文档&#xff0c;插入数学公式都可以大大提升您对复杂数学概念的表达能力&#xff0c;并增强文档的视觉效果与专业性。本文将介绍如何使用 Spire.Do…...

Markdown Viewer:浏览器中的终极Markdown渲染神器,让你告别单调预览

Markdown Viewer&#xff1a;浏览器中的终极Markdown渲染神器&#xff0c;让你告别单调预览 【免费下载链接】markdown-viewer Markdown Viewer / Browser Extension 项目地址: https://gitcode.com/gh_mirrors/ma/markdown-viewer 还在为Markdown文件的预览效果发愁吗&…...

[具身智能-345]:MCP Client工作原理

如果说 MCP Server 是“手脚”和“感官”&#xff0c;那么 MCP Client 就是连接“大脑”&#xff08;LLM&#xff09;与这些手脚的“神经系统”和“守门员”。它绝不仅仅是一个简单的 API 调用封装&#xff0c;而是一个具备状态管理、安全校验和协议转换能力的智能代理AI Agent…...

Steam Economy Enhancer:如何5分钟提升Steam交易效率87%的完整指南

Steam Economy Enhancer&#xff1a;如何5分钟提升Steam交易效率87%的完整指南 【免费下载链接】Steam-Economy-Enhancer 中文版&#xff1a;Enhances the Steam Inventory and Steam Market. 项目地址: https://gitcode.com/gh_mirrors/ste/Steam-Economy-Enhancer 还在…...

利用screen高效管理串口会话:从基础操作到高级技巧

1. 为什么选择screen管理串口&#xff1f; 第一次接触串口调试时&#xff0c;我和大多数人一样用的是minicom。直到有次调试某款嵌入式设备&#xff0c;发现minicom显示BIOS信息时色彩混乱&#xff0c;这才开始寻找替代方案。screen这个看似普通的终端复用工具&#xff0c;在串…...

5个高效RAG部署教程:BGE-Reranker-v2-m3免配置一键启动

5个高效RAG部署教程&#xff1a;BGE-Reranker-v2-m3免配置一键启动 你是不是也遇到过这样的问题&#xff1a;费了好大劲搭建的RAG系统&#xff0c;检索出来的文档看似相关&#xff0c;但交给大模型生成答案时&#xff0c;却总是“答非所问”&#xff1f;或者明明检索到了正确答…...