天給大家介紹一個(gè) ASP.NET Core MVC 的一個(gè)新特性,給全局路由添加統(tǒng)一前綴。嚴(yán)格說(shuō)其實(shí)不算是新特性,不過(guò)是Core MVC特有的。

應(yīng)用背景

不知道大家在做 Web Api 應(yīng)用程序的時(shí)候,有沒(méi)有遇到過(guò)這種場(chǎng)景,就是所有的接口都是以 /api 開(kāi)頭的,也就是我們的api 接口請(qǐng)求地址是像這樣的:

http://www.example.com/api/order/333

或者是這樣的需求

http://www.example.com/api/v2/order/333

在以前,我們?nèi)绻獙?shí)現(xiàn)這種需求,可以在 Controller 中添加一個(gè) [Route("/api/order")] 這樣的特性路由 Attribute,然后MVC 框架就會(huì)掃描你的路由表從而可以匹配到 /api/order 這樣的請(qǐng)求。
但是第二個(gè)帶版本號(hào)的需求,原本 Controller 的 Route 定義是 [Route("/api/v1/order")],現(xiàn)在要升級(jí)到v2,又有上百個(gè)接口,這就需要一個(gè)一個(gè)修改,可能就會(huì)懵逼了。

現(xiàn)在,有一種更加簡(jiǎn)便優(yōu)雅的方式來(lái)做這個(gè)事情了,你可以統(tǒng)一的來(lái)添加一個(gè)全局的前綴路由標(biāo)記,下面就一起來(lái)看看吧。

IApplicationModelConvention 接口

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