2021年6月27日 星期日

ASP.NET Core WebApi 分版

之前有使用過MapRoute(參考)分版,效果也不錯,來到.net core 世界,想說來試試看其他

方法,於是就產生了這篇文章。過程中,體驗也是不錯。



使用nuget 安裝 aspnetcore.mvc.versioning 套件(參考)


安裝好後,先設計一個 action


controller 上面掛 ApiVersionw attr,此時網址可以這樣輸入 domain/home/index?api-version=1


後面的數字就是版號,試試看修改為 2


網址與結果


Route 中指定格式,如 api/v1/values or api/v2/values

修改路由


檢視結果


Route 中沒有指定格式,直接吃預設版本

先來看路由設計,沒有卦 ApiVersion attr


startup.cs 設定預設值


檢視網址


不是整個 API 改寫,而僅僅是調整或升級某個 action

來看HomeController 與 IndexAction 改寫,如下圖


可以看到 controller 上面掛 兩個 api 版本,而為了實現 index action 可以明確被

區分v1 或v2 呼叫,故在 IndexV2 方法上方,使用了 MapToApiVersion 特性,代

表版本2會呼叫IndexV2方法,以下是實際網址與結果


Version Format 支援日期格式



參考


沒有留言:

張貼留言