ASP.NET MVC5+EF6+EasyUI 後臺管理系統-WebApi的用法與除錯
阿新 • • 發佈:2018-12-14
以往我們講了WebApi的基礎驗證,但是有新手經常來問我使用的方式
這次我們來分析一下程式碼的用法,以及除錯的方式
WebApi在一些場景我們會用到,比如:
- 1.對接各種客戶端(移動裝置)
- 2.構建常見的http微服務
- 3.開放資料
- 4.單點登陸 等...
本文主要演示幾點:主要也是對以往的回顧整理
- 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(newXmlDocumentationProvider(HttpContext.Current.Server.MapPath("~/bin/Apps.WebApi.XML")));
設定Register方法就行,執行地址localhost:1593/help得到如下結果
從圖中可以看出,每一個控制器的介面都會列出來,並根據註釋和引數生成文件,全自動
點選介面可以看到引數和請求方式
2.使用Postman除錯
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.刪除
謝謝,從原始碼直接可以看出,和自己測試或者自己配置一遍,不失是一種體驗