前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ASP.NET MVC5+EF6+EasyUI 后台管理系统-WebApi的用法与调试

ASP.NET MVC5+EF6+EasyUI 后台管理系统-WebApi的用法与调试

作者头像
用户1149182
发布2018-10-11 15:34:32
2K0
发布2018-10-11 15:34:32
举报

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.单点登陆  等...

本文主要演示几点:主要也是对以往的回顾整理

  • 1.使用HelpPage文档
  • 2.Postman对接口进行调试(之前的样例太过简单,这次加一些参数,让初学者多看到这些场景)
  • 3.调试接口

1.HelpPage Api帮助文档

我们新建的WebApi集成了微软自带的HelpPage,即Api的文档,在我们编写好接口之后会自动生成一份文档

配置HelpPage,非常简单,分两步

设置项目属性的输出XML文档

2.打开Areas-->HelpPage-->App_Start-->HelpPageConfig.cs

代码语言:javascript
复制
    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过滤器代码

代码语言:javascript
复制
//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.删除

 谢谢,从源码直接可以看出,和自己测试或者自己配置一遍,不失是一种体验

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-10-08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.HelpPage Api帮助文档
    • 配置HelpPage,非常简单,分两步
    • 2.使用Postman调试
    • 3.验证权限
    • 4.通过Token向其他接口拿数据
      • 1.查询
        • 2.创建
          • 3.修改
            • 4.获取明细
              • 5.删除
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档