隨著系統持續擴展,API功能也會不斷更新,問題是,舊的使用者或應用程式往往還依賴舊版API,如果新版本直接覆蓋掉舊功能,可能會造成大規模的相容性問題,為了避免這種情況,API設計必須考慮「版本控制」。
最常見的做法是在URL中加入版本號,例如:
/api/v1/users
/api/v2/users
這樣能讓開發者一眼看出自己正在使用哪一個版本,對於需要長期維護的系統來說非常直觀。
另一種方法是透過HTTP Header指定版本,例如:
GET /users
Accept-Version: v2
這種方式能保持URL的乾淨整潔,但需要開發者熟悉API的設計規範。
除了如何標示版本,更重要的是相容性。
如果只是新增欄位或功能,通常能保持向下相容,舊版使用者不需要更改程式碼就能繼續使用,但若涉及刪除欄位、改變資料結構或調整端點設計,就應該建立新版本,並在文件中清楚標明,避免誤用。
版本控制也與維護策略有關,理想的做法是同時維護多個版本,並且公告舊版本的「停用時間」,這樣能給使用者足夠的緩衝期,讓他們有時間將程式切換到新版本,而不是突然發現API無法使用。
在工具層面,許多API文件產生器都支援版本標記,能幫助管理不同版本的端點與參數,讓文件與實際API保持同步。