【翻译】API版本管理:它是什么,为什么这么难?

2023-11-01

如果你想在API技术专家之间展开一场辩论,只要让他们分享他们对 "API版本 "的看法。可以肯定的是,你会在短时间内发现一些强烈的感受。术语 "API版本 "已经成为 "改变API "的同义词,这是理清支持已发布的API持续变化而又不给API消费者带来不必要问题的明智策略的第一个障碍。

大多数API不需要版本,它们需要的是支持随着时间的推移进行兼容变化的能力(这个词不那么华丽,对吧?)有很多技术支持兼容变化的例子,比如TCP/IP、HTTP和HTML。大多数编程语言也是这样做的。成功地实施兼容的变化需要做出支持变化的承诺,并长期坚持这一承诺。就这么简单,但并不那么容易。

最有效的兼容变化的API可以继续增加功能而不破坏现有的API消费者--即使是多年前创建的消费者。最不有效的API变化要求所有的API生产者和消费者在每次API设计更新时都要重写和重新发布他们的代码。成功的关键是,从一开始就设计好对兼容变化的支持。有了这个支柱,随着时间的推移,实施和发布兼容版API的过程会变得更加一致、可预测和有弹性。

而这正是我们都需要的,对吗?

版本划分是对客户的 "中指"。

在网络上维护API的关键挑战之一是处理随时间变化的问题。简单地说,一旦你发布了你的API,人们开始使用它,这个接口就代表了一种依赖性。API的消费者依赖于API的稳定性和可靠性。

但是很多时候,服务器端的团队(API生产者)忽略了这种依赖性。相反,他们只是简单地做出改变,而很少考虑到他们传递给API消费者的努力成本。正如Roy Fielding(REST名人)在2013年的一条推文中所说:

"......'v1'是对你的API客户的一个中指......"

从API生产商到API消费者的中指,本质上意味着,"是的,我们改变了我们的API,处理它"。 好消息是,通常的做法是在一个新的URL上开始一个新的版本--从api.example.org/v1/customers移到api.example.org/v2/customers。至少这样可以将变化隔离到一些新的分支。但是,情况变得更糟了;这些割裂

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【翻译】API版本管理:它是什么,为什么这么难? 的相关文章

  • 【翻译】 迁移到Python 3

    本文由LWN用户为您带来LWN net的订阅者使得这篇文章 以及它周围的一切 成为可能 如果您喜欢我们的内容 请购买订阅 使下一组文章成为可能 2011年2月9日 本文由Ian Ward提供 Python 3 0于2008年底发布 但到目前
  • 【翻译】3个(不,应该是4个)问题:大使实验室的丹尼尔-布莱恩特

    在我们的循环专题 3个问题 中 我们向云原生社区中具有影响力的人提出了三个问题 旨在定义云原生 在本期节目中 Ambassador Labs的开发关系总监和InfoQ的新闻经理Daniel Bryant接受了这个挑战 我们还偷偷地加入了第四
  • 【翻译】我们建立了一个.NET操作员SDK(所以您不必这样做)。

    我们用C 语言构建了一个 NET操作者SDK 因此您可以用C 或任何 NET语言构建自己的Kubernetes操作者 当然也 有Go Operator SDK 还有我们的Java Operator SDK 那么为什么不为 NET社区提供一些
  • google翻译的一个错误

    如图 音标标着yi朗读却是ai
  • 【翻译】进程间通信是什么?

    从单体架构到微服务的转变需要构成应用程序的不同服务之间的通信 服务实例通常是需要以某种方式相互通信的进程 这就是进程间通信 IPC 有时称为服务间通信 ISC 的作用 人们 往往想到的IPC机制是RESTful APIs 因为这仍然是使用最
  • 详解卡尔曼滤波原理

    详解卡尔曼滤波原理 在网上看了不少与卡尔曼滤波相关的博客 论文 要么是只谈理论 缺乏感性 或者有感性认识 缺乏理论推导 能兼顾二者的少之又少 直到我看到了国外的一篇博文 真的惊艳到我了 不得不佩服作者这种细致入微的精神 翻译过来跟大家分享一
  • 沉浸式翻译 安装及使用

    介绍一下最近非常或的沉浸式翻译工具 非常有助于外文阅读 包括网页 pdf等 可以同时显示原文和译文 操作简单 使用起来还是非常友好的 先上链接 介绍 沉浸式翻译 如何使用 沉浸式翻译 1 安装 支持Edge Chrome Firefox和S
  • 关于Postman无法显示中文的解决方案(翻译)

    在使用Postman时很多人因为界面是纯英文的感到很头疼 会面临不知道什么意思及界面看不懂的情况 于是出现了需要将界面汉化翻译过来的需求 但从实际工作经验来讲 个人还是比较喜欢看英文界面的 可能也是看习惯了导致的吧 本文以两种方式帮助读者理
  • 【翻译】API版本管理:它是什么,为什么这么难?

    如果你想在API技术专家之间展开一场辩论 只要让他们分享他们对 API版本 的看法 可以肯定的是 你会在短时间内发现一些强烈的感受 术语 API版本 已经成为 改变API 的同义词 这是理清支持已发布的API持续变化而又不给API消费者带来
  • 冰羚中间件 RouDi usage-guide.md翻译

    内容 内容 配置RouDi Configuring RouDi RouDi可以支持读取从一个配置文件中读取mempool config 如果需要支持这个特性 CMake的编译选项中需要使用 DTOML CONFIG on mempool c
  • 抱抱脸(hugging face)教程-中文翻译-分享一个模型

    分享一个模型 最后两个教程展示了如何使用 PyTorch Keras 和 Accelerate 优化分布式设置的模型 下一步就是把你的模型公之于众 我们相信公开分享知识和资源 使人工智能大众化 我们鼓励你考虑与社区分享你的模式 以帮助其他人
  • 各国语言对应翻译表

    为了工作方便 自己做了一个地区语言的英文翻译 让自己可以更快的找到自己需要的地方 同时 分享给大家 谢谢 中文 各国语言 翻译 序号 中文 翻译 1 阿尔巴尼亚语 2 阿拉伯语 3 阿姆哈拉语 4 阿塞拜疆语 Az rbaycan 5 爱尔
  • node调用谷歌翻译Api,实现自动国际化

    原因 项目国际化过程繁琐 每次都需要人工去google翻译 导致工作效率不高 需求 1 减少人工的重复劳动 提高工作效率 2 使用脚本调用谷歌翻译接口自动化翻译 3 free 作为程序员肯定接受不了付费服务 找方法解决限制 前期准备 1 谷
  • 【python】20行代码实现有道翻译api接口调用

    文章目录 1 目标站点 2 完整代码 3 测试样例 3 1 测试样例 汉译英 3 2 测试样例 英译汉 4 调用文档 4 1 接口地址 4 2 请求方法 4 3 请求参数 4 4 请求示例 4 5 成功响应 5 接口分析 6 相关推荐 1
  • 【翻译】 2.6 中的 4K 堆栈 [发布于 2004 年 5 月 12 日,作者:corbet

    传统上 Linux 内核在大多数架构上都使用 8KB 内核堆栈 该堆栈必须满足系统调用可能产生的任何调用序列 以及可能同时调用的任何 硬或软 中断处理程序的需要 实际上 在稳定的内核中 堆栈溢出的情况几乎闻所未闻 内核开发人员早已学会避免使
  • 【翻译】BItcoin数据结构——UTXO definition-Investopedia

    原文 https www investopedia com terms u utxo asp UTXO意味着什么 UTXO代表比特币交易的未花费的输出 每个比特币交易都以用于平衡分类账的硬币开始 UTXO会不断处理 并负责开始和结束每笔交易
  • 【翻译】为什么你的活动需要一个行为准则,你需要执行它

    会议的开幕词是一个特别关键的时刻 无论你的舞台是实体的还是虚拟的 其实都不重要 重要的是设定正确的基调 分享有用的信息以提高每个人的经验 让你的听众参与进来 感到兴奋和安全 这些感觉只是保证你的会议成功的一半 另一半来自于伟大的内容和创意
  • 【翻译】白人男性在改善性别多样性方面的作用是什么?

    我们都知道 或者说现在应该知道 多元化的团队和组织更成功 更有创造力 有更好的留任率 并能带来更健康的工作场所文化 强调这些观点的数据是很多的 然而 技术团队在这方面往往是落后的 艾米丽 张在她的书 Brotopia 中认为 在一个如此有力
  • 推荐这款神器!每年都有数以百万的大学生想用它!闲鱼都卖两百!

    文末有下载链接 如同明日将死那样生活 如同永远不死那样求知 甘地 image 这是一个能把破解者气死的软件 辛辛苦苦破解的软件 却被别人拿去收费标价200元 真买了 吃亏的是你 在我这 不用钱 说到论文翻译 真的是让人抓狂 每年百万的大学生
  • 【翻译】 WireGuard 何去何从?

    请考虑订阅 LWN订阅是 LWN net 的生命线 如果您喜欢这些内容并希望看到更多 您的订阅将有助于确保 LWN 继续蓬勃发展 请访问此页面加入我们 让 LWN 继续在网络上传播 作者 Jonathan Corbet 2019年3月25日

随机推荐

  • 五笔字形字根及难字拆分

    http blog sina com cn s blog 5cf6d51f0100b17o html 一 字根助记词 11王旁青头戋 兼 五一 12土士二干十寸雨 13大犬三 羊 古石厂 14木丁西 15工戈草头右框七 21目具上止卜虎皮
  • C-数据的储存(上)

    文章目录 前言 一 数据类型详细介绍 1 内置类型 1 整形家族 2 浮点数家族 2 构造类型 也称自定义类型 3 指针类型 4 空类型 二 整形在内存中的存储 1 空类型计算机中的整数有三种2进制表示方法 2 大小端 1 什么是大小端 2
  • 课设攻略--人脸特征点检测与图像风格迁移fast-style-transfer-master

    1 1必做题要求 人脸特征点检测 1 对实时的视频进行人脸检测功能 定位和标准 著名的深度学习库opencv和dlib均可检测出图像中的人脸 dlib更提供算法 从标注人脸特征点的数据集中训练模型 高效检测出人脸特征点 用于美颜 人脸位置摆
  • NUC980开源项目24-Please port gnulib freadahead.c to your platform!

    上面是我的微信和QQ群 欢迎新朋友的加入 项目码云地址 国内下载速度快 https gitee com jun626 nuc980 open source project 项目github地址 https github com Jun117
  • Struts2远程代码执行漏洞

    漏洞描述 CVE 2020 17530是对CVE 2019 0230的绕过 Struts2官方对CVE 2019 0230的修复方式是加强OGNL表达式沙盒 而CVE 2020 17530绕过了该沙盒 在特定的环境下 远程攻击者通过构造恶意
  • 基于STM32的恒流源设计

    1 概述 本设计以STM32F103RCT6为主控芯片 利用MOS管的恒流区特点 设计恒流源 设计电流范围为1 300mA 2 原理 基本原理图 Q2为N沟道MOS管 在正常工作情况下 运放与MOS管之间构成深度负反馈 使得输入控制电压与V
  • Qt的程序打包

    1 打包exe程序 设置应用程序的图标 在Qt的pro中加入 RC ICONS 图标名 ico 到网上找个在线转换ico的工具即可 1 qt的编译模式切换到release版本 2 编译运行后找到自己放代码的位置 release版本的 3 新
  • c++类模板与继承

    继承中父子类和模板类的结合情况 1 父类是一般类 子类是模板 类 2 父类是模板类 子类是一般类 3 父类和子类都是模板类 1 include
  • 定义简单的切面

    连接点方法 preform public interface Performance void preform 定义实现类 Component public class Concert implements Performance Over
  • 【安装Pytorch】

    1 查看已有的虚拟环境 conda env list 2 创建自己的虚拟环境 conda create n name python 3 8 示例 conda create n pytorch python 3 8 param name 3
  • 2个月月活突破1亿,增速碾压抖音,出道即封神的ChatGPT,现在怎么样了?ChatGPT它会干掉测试?

    从互联网的普及到智能手机 都让广袤的世界触手而及 如今身在浪潮中的我们 已深知其力 前阵子爆火的ChatGPT 不少人保持观望态度 现如今 国内关于ChatGPT的各大社群讨论 似乎沉寂了不少 现在怎么样了 我们先来复盘 ChatGPT是一
  • 极限的运算法则

    极限的运算法则 两个无穷小的和也是无穷小 定理 有限个无穷小的和也是无穷小 无穷多个无穷小的和是1 定理 有界函数与无穷小的乘机也是无穷小 推论 常数与无穷小的乘积也是无穷小 推论 有限个无穷小的乘积也是无穷小 无限多个无穷小的乘积不一定是
  • 解决eclipse突然打不开了的问题

    网上搜了有大概六种 我又get一个解决方案 找到属于自己的方案才是关键 解决方式 7种 1 通过在命令行中输入 where java 找到除jdk目录下的所有java相关程序 直接删掉 一般会在C WINDOWS system32下 2 内
  • SQL刷题:SQL必知必会

    MySQL函数参考教程 1 多字段排序用逗号隔开 对多个字段排序的时候 同样满足默认ASC select cust id order num from Orders order by cust id order date desc sele
  • PicGo使用阿里云OSS配置图床

    PicGo使用阿里云OSS配置图床 前言 安装 PicGo PicGo molunerfinn com 以上是PIcGo的配置阿里云OSS需要的值 1 阿里云创建用户 登录阿里云 鼠标移到头像位置则可看到 点击访问控制 创建新用户 开启op
  • 摩拜单车红包骑行引发的潮汐问题思考

    前言 摩拜刚刚推行红包骑行的时候写的 最近比较忙一直忘记了 今天有时间发出来 言语不当之处 还望见谅 希望各位发表意见 谢谢 PS 摩拜单车相关人员已经看过 表示还可以 谢谢 2017 年 共享单车有很多 最先进入人们眼帘的应该是那一个类似
  • Part 5:Pandas 数据统计函数【汇总类统计、唯一去重和按值计数、相关系数和协方差】

    Pandas 数据统计函数 1 汇总类统计 2 唯一去重和按值计数 3 相关系数和协方差 import pandas as pd 1 预备步骤 对数据进行读取和预处理 将温度都改为Int类型 fpath datas beijing tian
  • jquery正则表达式写法

    const FloatRegex 0 9a zA Z 1 if FloatRegex test value this message error 只能输入数字 字母 下划线 小圆点 return
  • 计算机基础知识总结

    文章目录 1 Linux常用基本命令 文件管理 用户管理 进程管理 软件仓库搭建 远程登陆服务器 文件传输 定时任务 延迟任务 2 C 基础知识 面向对象的四大特征 C 和C语言有什么不同 new delete 和 malloc free
  • 【翻译】API版本管理:它是什么,为什么这么难?

    如果你想在API技术专家之间展开一场辩论 只要让他们分享他们对 API版本 的看法 可以肯定的是 你会在短时间内发现一些强烈的感受 术语 API版本 已经成为 改变API 的同义词 这是理清支持已发布的API持续变化而又不给API消费者带来