API Academy
🌐 繁體中文
  • 🌐 English
  • 🌐 繁體中文
HomePetstore APIExplore more APIs
HomePetstore APIExplore more APIs
🌐 繁體中文
  • 🌐 English
  • 🌐 繁體中文
🌐 繁體中文
  • 🌐 English
  • 🌐 繁體中文
  1. API Lifecycle
  • 歡迎
  • 目錄
  • API 學院
    • Get Started
      • 什麼是 API?
      • API 如何運作?
      • 如何呼叫 API?
      • 如何閱讀 API 文件?
      • 章節總結
    • API Fundamentals
      • API 基礎知識:概覽
      • 方法與路徑
      • 參數
      • 請求 Body
      • 回應
      • API 規格與 OAS
      • 章節總結
    • Working with APIs
      • 使用 API:概覽
      • 根據規格發送請求
      • 環境與變數
      • 串聯多個端點
      • 處理 Auth
      • 處理 API 簽名
      • 腳本介紹
      • 章節總結
    • Mocking APIs
      • Mocking API:概覽
      • Smart Mock
      • Mock 預期結果
      • Cloud Mock
      • Mock 腳本
      • 章節總結
    • Designing APIs
      • 設計 API:概覽
      • API 設計介紹
      • 建立您的第一個 API 專案
      • 分析需求並規劃您的 API
      • 設計資料模型
      • 設計端點
      • 使用組件與可重用性
      • 設定與 Auth
      • API 設計指南
      • 章節總結
    • Developing APIs
      • 開發 API:概覽
      • 設定:安裝您的 AI 程式碼助手
      • 快速入門:30 分鐘內從規格到運行的 API
      • 了解生成的程式碼
      • 使用 Apidog 測試您的 API
      • 部署:將您的 API 上線
      • 章節總結
    • Testing APIs
      • 測試 API:概覽
      • 快速入門:您的第一個測試場景
      • 整合測試與資料傳遞
      • 動態值
      • 斷言與驗證
      • 流程控制:If, For, ForEach
      • 資料驅動測試
      • 性能測試
      • 測試報告與分析
      • CI/CD 整合
      • 排程任務與自動化
      • 進階測試策略
      • 章節總結
    • API Documentations
      • API 文件:概覽
      • 發布您的第一個 API 文件
      • 自訂文件外觀
      • 給消費者的互動功能
      • 進階發布設定
      • 管理 API 版本
      • 章節總結
    • Advanced API Technologies
      • 進階 API 技術:概覽
      • GraphQL
      • gRPC
      • WebSocket
      • Socket.IO
      • Server-Sent Events
      • SOAP
      • 章節總結
    • API Lifecycle
      • API 生命周期:概覽
      • API 生命周期的階段
      • API 治理
      • API 安全最佳實踐
      • 監控與分析
      • API 版本策略
      • API 的未來
      • 章節總結
    • API Security
      • API 安全性:概覽
      • API 安全性基礎知識
      • 身份驗證 vs. 授權
      • 了解 OAuth 2.0 和 OpenID Connect
      • JSON Web Tokens (JWT)
      • OWASP API 安全 Top 10
      • 加密與 HTTPS
      • 章節總結
    • API Tools
      • API 工具:概覽
      • API 工具的演變
      • API Clients
      • 命令列工具 (cURL, HTTPie)
      • API 設計和文件工具
      • API Mocking 工具
      • API 測試工具
      • 一體化 API 平台
      • 章節總結
    • API Gateway
      • API Gateway:概覽
      • 什麼是 API Gateway?
      • API Gateway 的關鍵功能
      • API Gateway vs 負載平衡器 vs 服務網格
      • 流行 API Gateway 解決方案
      • BFF (Backend for Frontend) 模式
      • 章節總結
HomePetstore APIExplore more APIs
HomePetstore APIExplore more APIs
🌐 繁體中文
  • 🌐 English
  • 🌐 繁體中文
🌐 繁體中文
  • 🌐 English
  • 🌐 繁體中文
  1. API Lifecycle

API 版本策略

改變是不可避免的。但破壞使用者的程式碼卻不是。API 版本控制允許您在演進 API 的同時,讓現有的整合保持運作。

何時進行版本控制?#

非破壞性變更:新增一個可選欄位。 -> 不需要更改版本(或次要修補程式)。
破壞性變更:重新命名欄位、移除參數、更改資料類型。 -> 需要新版本。

策略#

在 REST 中處理版本控制主要有三種方式:

1. URI 版本控制(最常見)#

將版本包含在 URL 路徑中。
GET /v1/users
GET /v2/users
優點:明確、易於快取、易於在瀏覽器中探索。
缺點:「汙染」了 URI 資源空間。

2. Header 版本控制#

將版本包含在自訂 Header 中。
Accept-Version: v1
優點:URI 保持乾淨(GET /users 永遠是路徑)。
缺點:較難在瀏覽器中測試(需要擴充功能),快取較棘手。

3. 查詢參數版本控制#

GET /users?version=1
優點:易於實作。
缺點:可能會與其他查詢參數混淆。

管理棄用#

您無法永遠支援所有版本。
1.
Sunset Header:使用 Sunset HTTP Header 來宣佈端點何時停止運作。
Sunset: Sat, 31 Dec 2025 23:59:59 GMT
2.
溝通:提前透過電子郵件通知您的開發者(對於主要 API,需提前 6 到 12 個月)。
3.
Brownouts(部分停機):短暫、有計畫地停止舊 API 的運作,以引起忽略電子郵件的開發者的注意。

關鍵收穫#

避免破壞:盡可能進行疊加式變更(非破壞性),以避免版本控制的成本。
明確:URI 版本控制 (/v1) 由於其清晰性,是公共 API 的產業標準。
為死亡做計畫:您誕生的每個版本都需要一個最終如何退役的計畫。
繼續閱讀 → API 的未來
Modified at 2025-12-29 09:35:19
Previous
監控與分析
Next
API 的未來
Built with