幾天前,我和我的朋友們使用 ASP.NET Core 開(kāi)發(fā)了一個(gè)API ,使用的是GET方式,將一些數(shù)據(jù)返回到客戶(hù)端 APP。我們?cè)谇岸诉M(jìn)行了分頁(yè),意味著我們將所有數(shù)據(jù)發(fā)送給客戶(hù)端,然后進(jìn)行一些data.length操作,以獲得items count用于分頁(yè)邏輯。為了減少HTTP請(qǐng)求的負(fù)荷,我們決定在后端(服務(wù)器端分頁(yè))實(shí)現(xiàn)邏輯。在我們這樣的情況下,這是沒(méi)有任何問(wèn)題的,因?yàn)槲覀冊(cè)诳蛻?hù)端能快速實(shí)現(xiàn)。我們?cè)诳蛻?hù)端和服務(wù)端修改了所有邏輯,并且快速完成所有功能。

但是,您可能會(huì)有其他客戶(hù)端在使用,因?yàn)橹惶峁┝艘粋€(gè)數(shù)據(jù)源(API)。在一個(gè)API中引入突破性的變化可以支持一個(gè)客戶(hù)端,但同時(shí)破壞了其它客戶(hù)端。例如,假設(shè)您的手機(jī)團(tuán)隊(duì)正在度假,并且您的 Web 團(tuán)隊(duì)正在為了支持該服務(wù)器端分頁(yè)功能開(kāi)展工作。為了支持Web團(tuán)隊(duì),您在API中做了一個(gè)簡(jiǎn)單的更改。這個(gè)變更,您和您的Web團(tuán)隊(duì)都很高興(如果感到幸福你就拍拍手)。噩夢(mèng)開(kāi)始了,您會(huì)發(fā)現(xiàn)因?yàn)橐粋€(gè)很簡(jiǎn)單(其實(shí)是突破性)的變化,數(shù)百萬(wàn)移動(dòng)客戶(hù)端不工作,用戶(hù)會(huì)卸載APP。當(dāng)您發(fā)現(xiàn)你們都不是移動(dòng)應(yīng)用程序開(kāi)發(fā)人員,也沒(méi)有訪問(wèn)源代碼權(quán)限時(shí),更多的惡夢(mèng)來(lái)了?,F(xiàn)在您只能選擇降級(jí)您的 API 和 Web 應(yīng)用程序,但是,Web 應(yīng)用程序的開(kāi)發(fā)團(tuán)隊(duì)現(xiàn)在也去度假了。因?yàn)楦嗟膼簤?mèng)會(huì)接踵而至,所有的事情都只能停滯不前。

也許(不是也許,就是?。〢PI版本控制是在這種情況下,是一個(gè)非常不錯(cuò)的選擇。使用 API 版本控制,您不僅可以安全地針對(duì)這些突破性的更改,還可以支持這些更改,這對(duì)每個(gè)人都是雙贏的。

我們來(lái)看一看如何在 ASP.NET Core 中配置 API 版本。

注意:我正在使用一個(gè)空的 ASP.NET Core Web API 項(xiàng)目(.NET Core 1.1)

通過(guò) NuGet 安裝此軟件包:Microsoft.AspNetCore.Mvc.Versioning?,F(xiàn)在,在

網(wǎng)友評(píng)論