🌍 译介 · 编译自 Nordic APIs

API 版本管理的 5 种方式

版本管理没有唯一正确答案,关键是理解各策略的利弊。本文编译自 Nordic APIs(作者 Nahla Davies,2021),系统对比 Accept 头、URI 路径、查询字符串、子域与自定义 HTTPS 头五种版本化方式。

📅 更新于 2026-07-20 ⏱ 约 2 分钟阅读 🏷 译介
免费试用 YesApi Pro 查看全部定价 →
🌐本文由 YesApi Pro 团队编译Nordic APIs 的文章《5 Ways to Version APIs》,原作者 Nahla Davies(原文发布于 2021-12-07)。版权归原作者所有,内容仅供学习参考。查看英文原文 →
📌 核心结论
版本化无银弹。URI 路径是行业黄金标准(Facebook/Twitter/Airbnb 都用);Accept 头/自定义头把版本移出 URL;查询字符串是创新用法;子域可独立部署。选哪种取决于你的路由、缓存与开发者习惯。
📑 本文目录
  1. 为什么需要版本管理
  2. 方式一:Accept 头
  3. 方式二:URI 路径
  4. 方式三:查询字符串
  5. 方式四:子域
  6. 方式五:自定义 HTTPS 头
01

一、为什么需要版本管理

API 版本管理指区分 API 不同开发版本的方法,用来容纳结构变更、消费变化与底层软件的修改。API 互联且持续演化,文档、需求、协议都需随之更新。没有版本管理或方式不当,长期会对下游服务与产品造成灾难性影响。通常只有发生重大变更时才需要升版本。

02

二、方式一:Accept 头

服务器通过 Accept 头得知浏览器请求的数据文件格式(MIME 类型)。实现 Accept 头版本化,可在头中附加版本参数,让客户端按指定版本获取响应。适用于「格式版本化」场景。

03

三、方式二:URI 路径

在 URI 路径中写入版本号,是行业黄金标准——Facebook、Twitter、Airbnb 等以 API 为核心的公司都采用。主版本(破坏性变更)通过 URI 路由到新主机;次版本(非破坏性)通过变更日志通知。若多个版本并行运行,应给客户明确的弃用时间线,引导其迁移到新版。

04

四、方式三:查询字符串

查询字符串本用于过滤数据,但也可承载版本。例如发布新文章是第一版,修正后是第二版,可用 GET /api/article?v=1 取第一版、?v=2 取第二版。这遵循 REST「用查询字符串过滤资源」的约定,是一种创新用法。

05

五、方式四:子域

用子域托管 API 的最大好处是可把 API 部署在独立于主站的服务器上,API 管理网关也常通过子域路由。常见子域:api、ws、web services、search、services、secure、apis、app、dev。版本化的子域如 apiv1api2,虽简单但不如路径法常见。

06

六、方式五:自定义 HTTPS 头

把版本标识放进 HTTP 头(而非 URL)是主要替代方案,适用于格式版本化或实体版本化。以银行为例:为每类账户设唯一 URL 更简洁,若在 URL 中加格式版本,会把同一实体的每种格式都变成独立资源,且链接处理复杂。部分 API 用规范 URL + 版本专属 URL 解决链接问题。

译者实战注 落地建议与延伸

需要快速落地?

YesApi Pro 私有部署、源码交付、当天上线,帮您把方案变为现实。

立即预约演示 →

常见问题

不是必须,但一旦发生破坏性变更,版本化是保护现有客户集成不被中断的关键手段。

URI 路径(/api/v1/...)最直观、最通用,是众多行业领导者的选择。

属于创新用法,符合 REST 过滤约定,但有人认为偏离了查询字符串的原始用途。

YesApi Pro 支持在网关层配置多版本路由与弃用策略,配合文档自动标记版本,降低运维负担。
📚

继续阅读