API版本管理的重要性不言而喻,對於API的設計者和使用者而言,版本管理都有着非常重要的意義。下面會從WEB API 版本管理的角度提供幾種常見辦法:
首先,對於API的設計和實現者而言,需要考慮向後兼容性,但是隨着業務的發展或需求的變更往往會導致兼容性實現非常複雜,因此引入API版本管理將能解決這個尷尬。下面提供多個版本管理的API實現,不需要再爲了向後兼容性而絞盡腦汁。其次,對於API的使用者而言,也可以靈活選擇使用不同版本API,而不用擔心API的兼容性問題。
WEB API 版本化的五種方式:
方式一:利用URL
HTTP GET:
https://banbenguanli.com/api/...
方式二:利用用戶自定義的request header
HTTP GET:
https://banbenguanli.com/api/...
api-version: 2
方式三:利用content type
HTTP GET:
https://banbenguanli.com/api/...
Accept: application/vnd.banbenguanli.v2+json
方式四:利用content type,把版本號分離出來了
HTTP GET:
https://banbenguanli.com/api/...
Accept: application/vnd.banbenguanli+json; version=2.0
方式五:利用URL裏的parameter
HTTP GET:
https://banbenguanli.com/api/...
API版本控制策略
任何不斷髮展變化的API都需要API版本控制策略。API版本可以適應根據API使用者的期望而切換不同版本變得有所不同。建議將以下API版本控制策略作爲整體API管理系統的一部分。
- 1.如果API處於早期測試版本,爲了獲得消費者的反饋,請建立API各種可能發生的期望。在此階段內,你會保留這個版本一段時間,因爲你的API設計可能還會更改。作爲消費者,API是不穩定的,因此他們應該預期到可能會發生的變化。
- 2.一旦發佈,API應被視爲契約,如果沒有新版本,則不能被替換。
- 3.突破性的變化意味着客戶必須遷移到新版本,請與API使用者溝通更新日期,以確保他們能方便地遷移到新版本。但在某些情況下,新版本的遷移不會馬上實現,因此以前的API版本會被繼續使用一段時間。
實現版本控制的工具
使用工具和技術可以從根本上實現API版本控制過程。用市場上優秀的API編輯器將使技術開發團隊能夠在更短的時間內生成並切換更多的API版本,從而不斷改進設計決策。
結合工具進行版本控制是大多數開發過程的重要組成部分。API設計領域中也有這種能版本控制的工具,實際上,全球範圍內API服務領域中已經存在一些優秀的Web API設計工具。
現在,如EOLINKER、RAML、Swagger,都提供了出色的編輯工具來支持他們的語言。EOLINKER採用的是版本對比和重點標註提示,可以清晰的切換、對比。RAML、Swagger採用的是版本切換,方便程度可能略遜一點。而且只有前者是支持中文的,後兩種只支持英文語言。這些API編輯器都能輕鬆地實現API版本的控制,使得更容易在更短的時間內切換運行版本。點擊查看。
參考資料:
https://dzone.com/articles/wh...