日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

ASP.NET Web API中实现版本

發布時間:2023/12/4 asp.net 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ASP.NET Web API中实现版本 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一般來說,api 接口是提供給其他系統或是其他公司使用,不能隨意頻繁的變更。然而,需求和業務不斷變化,接口和參數也會發生相應的變化。如果直接對原來的接口進行修改,勢必會影響線其他系統的正常運行。這就必須對api 接口進行有效的版本控制。

例如,添加用戶的接口,由于業務需求變化,接口的字段屬性也發生了變化而且可能和之前的功能不兼容。為了保證原有的接口調用方不受影響,只能重新定義一個新的接口。

http://localhost:8080/api/v1/user

http://localhost:8080/api/v2/user

在ASP.NET Web API中,當我們的API發生改變,就涉及到版本問題了。如何實現API的版本呢?

通過路由設置,不同的路由,不同的版本,不同的controller。

//帶版本號的路由控制config.Routes.MapHttpRoute("DefaultVersionApi", "api/{version}/{module}/{controller}/{action}");//將自定義Action選擇器替換系統默認config.Services.Replace(typeof(IHttpActionSelector), new CustomActionSelector());

獲取接口調用版本號

/// <summary>/// 獲取接口調用版本號/// </summary>/// <returns>接口調用版本號</returns>protected int GetApiVersionNo(){try{var versionStr = RequestContext.RouteData.Values["version"];var tmpArray = versionStr?.ToString().ToLower().Replace("v", "").Split('.');if (tmpArray == null || tmpArray.Length == 0)return 0;var tmpStr = tmpArray[0];tmpStr = tmpArray.Skip(1).Aggregate(tmpStr, (current, v) => current + v.PadLeft(3, '0'));tmpStr = tmpStr.PadRight(7, '0');int versionInt;return int.TryParse(tmpStr, out versionInt) ? versionInt : 0;}catch{return 0;}}if (!exAccounts.Contains(info.Account) && GetApiVersionNo() < (int)VersionNumber.Version210)throw new CustomException("登錄失敗,請下載最新版登錄!", "E100011");

總結

以上是生活随笔為你收集整理的ASP.NET Web API中实现版本的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。