開發 API / App 時會需要版本管理,最基本的需求就是檢測當前的版本與目前最新的版本是否有差距?
是否要求用戶立即更新,或是不更新也沒關係?
這時候就要對版本號做管理。
一般來說 semantic versioning 已經是很通用的版本管理方式,所以我們很常看到 1.0.2 類似這種三個數字的版本號顯示,其實每個數字有代表不同的意思。
詳細文件可以參考 語意化版本 的文件。
這邊只列出重點
- Major version 做了不相容的 API 接口更改
- Minor version 做了一些可以向下兼容的功能性新增
- Patch version 做了一些向下兼容的問題修正或調整
所以在設計 API 管理時,可以用類似固定接口去檢查當前 client version
ex: api/client_version_check
然後可以依照對版本的設定返回給 client 相關的訊息
例如
- 返回 not_supported 表示此版本不再支持,必須 client 端升級
- 返回 deprecation warning 表示可以兼容,但即將棄用,並且提示 client 升級