Nic Lin's Blog

喜歡在地上打滾的 Rails Developer

遵循 Semantic Versioning 軟體開發語意化版本管理

開發 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 升級
comments powered by Disqus