幾天前,我和我的朋友們使用 ASP.NET Core 開發(fā)了一個API ,使用的是GET方式,將一些數(shù)據(jù)返回到客戶端 APP。我們在前端進(jìn)行了分頁,意味著我們將所有數(shù)據(jù)發(fā)送給客戶端,然后進(jìn)行一些data.length
操作,以獲得items count
用于分頁邏輯。為了減少HTTP請求的負(fù)荷,我們決定在后端(服務(wù)器端分頁)實(shí)現(xiàn)邏輯。在我們這樣的情況下,這是沒有任何問題的,因?yàn)槲覀冊诳蛻舳四芸焖賹?shí)現(xiàn)。我們在客戶端和服務(wù)端修改了所有邏輯,并且快速完成所有功能。
但是,您可能會有其他客戶端在使用,因?yàn)橹惶峁┝艘粋€數(shù)據(jù)源(API)。在一個API中引入突破性的變化可以支持一個客戶端,但同時破壞了其它客戶端。例如,假設(shè)您的手機(jī)團(tuán)隊(duì)正在度假,并且您的 Web 團(tuán)隊(duì)正在為了支持該服務(wù)器端分頁功能開展工作。為了支持Web團(tuán)隊(duì),您在API中做了一個簡單的更改。這個變更,您和您的Web團(tuán)隊(duì)都很高興(如果感到幸福你就拍拍手)。噩夢開始了,您會發(fā)現(xiàn)因?yàn)橐粋€很簡單(其實(shí)是突破性)的變化,數(shù)百萬移動客戶端不工作,用戶會卸載APP。當(dāng)您發(fā)現(xiàn)你們都不是移動應(yīng)用程序開發(fā)人員,也沒有訪問源代碼權(quán)限時,更多的惡夢來了。現(xiàn)在您只能選擇降級您的 API 和 Web 應(yīng)用程序,但是,Web 應(yīng)用程序的開發(fā)團(tuán)隊(duì)現(xiàn)在也去度假了。因?yàn)楦嗟膼簤魰吁喽粒械氖虑槎贾荒芡磺啊?/p>
也許(不是也許,就是!)API版本控制是在這種情況下,是一個非常不錯的選擇。使用 API 版本控制,您不僅可以安全地針對這些突破性的更改,還可以支持這些更改,這對每個人都是雙贏的。
我們來看一看如何在 ASP.NET Core 中配置 API 版本。
注意:我正在使用一個空的 ASP.NET Core Web API 項(xiàng)目(.NET Core 1.1)
通過 NuGet 安裝此軟件包:Microsoft.AspNetCore.Mvc.Versioning。現(xiàn)在,在
網(wǎng)友評論