Api版本控制
- 2020 年 10 月 27 日
- 筆記
版本控制是電腦軟體行業人士使用的術語。但進化是我們所有人都要經歷的事情,它適用於這個世界上的每個對象。
在電腦軟體行業,可以看到每3至4年,每台電腦軟體都會附帶不同的發行版/版本,以滿足當前/現代的要求。

版本控制是創建和管理軟體產品的多個版本的實踐,消費者可以根據自己的需求決定使用哪個版本,API的管理也是如此。
API的創建始終始於使應用程式與內部/外部應用程式開發人員集成的想法。就像任何其他傳統軟體產品一樣,它總是從小規模開始,並且會隨著時間而發展。讓我們看下面的簡單用例,以更好地理解它。
例如,我們可能希望使內部/外部應用程式開發人員能夠訪問客戶資訊,並且可能開始創建API以提供所需的功能。
作為第一個版本,您可以為API提供僅對客戶資訊的讀取許可權。後來,隨著對應用程式需求的增加,您的應用程式開發人員可能會請求對客戶資訊的「寫入/更新」訪問許可權。作為API創建者/開發者,您可以決定是否:
- 提供具有對客戶資訊的寫入/更新訪問許可權的同一API的新版本
- 完全提供單獨的API,以提供對客戶資訊的寫入/更新訪問許可權
API的通用設計原則是使用第一種方法-從應用程式開發人員的角度來看,為我們提供相同功能的API的新版本,以及我們處理同一實體(客戶)時的附加功能。這將導致具有相同API的2個版本:
• CustomerInfo v1.0-提供對客戶資訊的只讀訪問
• CustomerInfo v2.0 —提供對客戶資訊的讀/寫/更新訪問

通過API的版本控制,CustomerInfo API的使用者可以根據需要決定使用哪個版本。
當我們想支援同一個API的多個版本時,作為API創建者/設計者,我們需要考慮以下02個主要設計決策:
• 指定API版本資訊的格式是什麼
• 消費者將如何指定所選API的API版本
選擇用於指定版本資訊的格式時,可以選擇以下02種常見做法:
• 使用發布/構建日期-這允許使用發布/構建日期來唯一標識每個版本。
示例—版本=「 20200808」 | 版本=「 20190102」

• 使用major.minor數字 -這些數字用於指定同一API的不同版本,並且該數字可以包含1或2或3位數字作為版本號的一部分。一些API開發人員使用「 v」前綴來表示它是版本號。
示例— version =「 1」 | 版本=「 v1」 | 版本=「 1.1」 | 版本=「 v1.1」 | 版本=「 1.1.1」 | 版本=「 v1.1.1」

在決定使用者如何指定版本資訊時,可以從以下03種常見做法中進行選擇:
• HTTP標頭-自定義HTTP標頭將用於傳遞API版本資訊
示例— x-customerinfoapi-version:2.1

• 查詢參數-API版本資訊將作為查詢參數傳遞
示例-/customerinfo?version=2.1

• URL -API版本資訊將合併到URL本身
示例-/ v2 / customerinfo

作為API的創建者/開發者,我們還可以結合上面的一些方法,並提供用於提供API版本資訊的混合方法。例如,我們可以使用URL方法來指定主要版本,而可以使用HTTP標頭方法來指定API的次要版本。
如您所見,API版本控制是API設計/開發中的關鍵功能,並且作為API提供程式,使消費者能夠在不同的API版本之間進行選擇是關鍵的業務差異。


