因此,我花了幾個小時瀏覽了所有關於Web API版本控制的真正奇妙的建議。一些我的最愛,對於那些有儘可能多的樂趣,因爲我,沒有特定的順序:構建用於版本控制的Web API棧
Best practices for API versioning?
Versioning REST API of an ASP.NET MVC application
http://www.troyhunt.com/2014/02/your-api-versioning-is-wrong-which-is.html
http://www.pluralsight.com/courses/web-api-design
http://www.pluralsight.com/courses/implementing-restful-aspdotnet-web-api
所以所有這些建議對設計都非常有幫助基本上是API的「前端」。我們可以對API調用進行版本化...現在,我正在努力工作。
這是一個嚴重的數據驅動的應用程序,對於一個公司有幾個產品(這是一個新的)每月發佈。一些希望長期支持API調用的大客戶,以及一些希望獲得最新版本的小客戶。我們可以通過類似API的里程碑/長期支持版本進行管理。大。
但實際上這會變得非常混亂,非常快。我們一直努力將我們自己網站的各個層面,Beta內部/外部API,存儲庫層以及一個SDK引導出來。我們將每個版本分成不同的分支,但它是SAAS--我們託管數據庫。所以我們不僅能夠對API調用進行版本管理,而且還能夠對其下的所有內容進行版本管理。業務邏輯,存儲庫和數據庫。我們甚至不開始進行單元/集成測試。
所以,嘗試和可能失敗只能在這裏問一個問題。
是否有一個體面的模式來構建分層的,數據驅動的.NET應用程序來處理多個版本?
具體如何改變數據庫以及如何構建一個通用堆棧來完成它的版本。有些想法我已經包括:
- 更新堆棧的舊的源控制分支,在同一項目中部署這些
- 藏在心裏,但使用文件夾/命名空間下
- 拆分項目進一步一路 - 因此API的解決方案有許多的「控制器」項目,具有類似概念的邏輯/回購層
我們有相當數量的開發商也不管我有多麼王牌文檔寫的,現實也只會是當有東西不能工作時閱讀。所以理想情況下,開發人員必須儘可能明顯地理解這一點。