版本控制是計算機軟件行業人士使用的術語。但進化是我們所有人都要經歷的事情,它適用於這個世界上的每個對象。
在計算機軟件行業,可以看到每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版本之間進行選擇是關鍵的業務差異。