ASP.NET MVC5+EF6+EasyUI 後臺管理系統-WebApi的用法與調試

1:ASP.NET MVC5+EF6+EasyUI 後臺管理系統(1)-WebApi與Unity注入 使用Unity是爲了使用咱們後臺的BLL和DAL層html

2:ASP.NET MVC5+EF6+EasyUI 後臺管理系統(2)-WebApi與Unity注入-配置文件ide

3:ASP.NET MVC5+EF6+EasyUI 後臺管理系統(3)-MVC WebApi 用戶驗證 (1)微服務

4:ASP.NET MVC5+EF6+EasyUI 後臺管理系統(4)-MVC WebApi 用戶驗證 (2)post

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

此次咱們來分析一下代碼的用法,以及調試的方式url

WebApi在一些場景咱們會用到,好比:spa

  • 1.對接各類客戶端(移動設備)
  • 2.構建常見的http微服務 
  • 3.開放數據 
  • 4.單點登錄  等...

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

  • 1.使用HelpPage文檔
  • 2.Postman對接口進行調試(以前的樣例太過簡單,此次加一些參數,讓初學者多看到這些場景)
  • 3.調試接口

1.HelpPage Api幫助文檔

咱們新建的WebApi集成了微軟自帶的HelpPage,即Api的文檔,在咱們編寫好接口以後會自動生成一份文檔調試

配置HelpPage,很是簡單,分兩步

設置項目屬性的輸出XML文檔code

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.刪除

 

 謝謝,從源碼直接能夠看出,和本身測試或者本身配置一遍,不失是一種體驗

相關文章
相關標籤/搜索