ASP.NET MVC5+EF6+EasyUI 後台管理系統-關於WebApi的用法

來源:互聯網
上載者:User

標籤:png   全自動   img   直接   構建   man   調試介面   tor   tpc   

1:ASP.NET MVC5+EF6+EasyUI 後台管理系統(1)-WebApi與Unity注入 使用Unity是為了使用我們背景BLL和DAL層

2:ASP.NET MVC5+EF6+EasyUI 後台管理系統(2)-WebApi與Unity注入-設定檔

3:ASP.NET MVC5+EF6+EasyUI 後台管理系統(3)-MVC WebApi 使用者驗證 (1)

4:ASP.NET MVC5+EF6+EasyUI 後台管理系統(4)-MVC WebApi 使用者驗證 (2)

以往我們講了WebApi的基礎驗證,但是有新手經常來問我使用的方式

這次我們來分析一下代碼的用法,以及調試的方式

WebApi在一些情境我們會用到,比如:

1.對接各種用戶端(行動裝置)2.構建常見的http微服務 3.開放資料 4.單點登陸  等...

65代碼下載  密碼:4bfb 

本文主要示範幾點:主要也是對以往的回顧整理

  • 1.使用HelpPage文檔
  • 2.Postman對介面進行調試(之前的範例太過簡單,這次加一些參數,讓初學者多看到這些情境)
  • 3.調試介面
1.HelpPage Api協助文檔

我們建立的WebApi整合了微軟內建的HelpPage,即Api的文檔,在我們編寫好介面之後會自動產生一份文檔

配置HelpPage,非常簡單,分兩步

設定項目屬性的輸出XML文檔

2.開啟Areas-->HelpPage-->App_Start-->HelpPageConfig.cs

    public static void Register(HttpConfiguration config)        {            //// Uncomment the following to use the documentation from XML documentation file.            config.SetDocumentationProvider(new XmlDocumentationProvider(HttpContext.Current.Server.MapPath("~/bin/Apps.WebApi.XML")));

設定Register方法就行,運行地址localhost:1593/help得到如下結果

可以看出,每一個控制器的介面都會列出來,並根據注釋和參數產生文檔,全自動

點擊介面可以看到參數和請求方式

2.使用Postman調試

:https://www.getpostman.com/

Pastman非常易用,我們下面就拿登陸介面來測試

開啟Postman,建立一個請求

OK,我們已經獲得token!注意,建立請求的時候,要設定GET,POST

 

3.驗證許可權

之前的文章,我們是通過令牌的方式+介面許可權來提供者資料的

開啟SupperFilter.cs過濾器代碼

//url擷取token            var content = actionContext.Request.Properties[ConfigPara.MS_HttpContext] as HttpContextBase;            var token = content.Request.QueryString[ConfigPara.Token];            if (!string.IsNullOrEmpty(token))            {                //解密使用者ticket,並校正使用者名稱密碼是否匹配                //讀取請求上下文中的Controller,Action,Id                var routes = new RouteCollection();                RouteConfig.RegisterRoutes(routes);                RouteData routeData = routes.GetRouteData(content);                //取出地區的控制器Action,id                string controller = actionContext.ActionDescriptor.ControllerDescriptor.ControllerName;                string action = actionContext.ActionDescriptor.ActionName;                //URL路徑                string filePath = HttpContext.Current.Request.FilePath;                //判斷token是否有效                if (!LoginUserManage.ValidateTicket(token))                {                    HandleUnauthorizedRequest(actionContext);                }                //判斷是否角色群組授權(如果不需要使用角色群組授權可以注釋掉這個方法,這樣就是登入使用者都可以訪問所有介面)                if (!ValiddatePermission(token, controller, action, filePath))                {                    HandleUnauthorizedRequest(actionContext);                }                //已經登入,有許可權                base.IsAuthorized(actionContext);

過濾器中會讀取到使用者傳過來的token並進行2個邏輯驗證

1.驗證token是否有效

2.驗證介面有沒有許可權(通過後台分配許可權來擷取Action)這個操作跟我們授權介面是一樣的 

(註:如果注釋掉即所有登陸使用者都可以訪問所有介面,不受控制,主要看業務情境吧)

 

4.通過Token向其他介面拿資料

看到SysSampleController類,這個類和普通MVC裡面的範例的介面其實沒有什麼區別,BLL後的所有都是通用的,所以邏輯就不需要重新寫了!按照第二點的獲得token,配置到Postman可以獲得資料

1.查詢

2.建立

3.修改

4.擷取明細

5.刪除

 

 謝謝,從源碼直接可以看出,和自己測試或者自己配置一遍,不失是一種體驗

 

ASP.NET MVC5+EF6+EasyUI 後台管理系統-關於WebApi的用法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.