zoukankan      html  css  js  c++  java
  • webAPI路由的使用

    根据WEBAPI的路由规则,在实际项目当中有二种用法,

    一:webAPI.Config里面为 

    config.MapHttpAttributeRoutes();

                config.Routes.MapHttpRoute(
                    name: "DefaultApi",
                    routeTemplate: "api/{controller}/{id}",
                    defaults: new { id = RouteParameter.Optional }
                );

    控制器里面加上【HttpGet,HttpPOST】认证,并将接口使用路由暴露出来,写法有两种

    (1)在控制器上面加上路由前缀,action之前加上action名字从而将整个路由暴露出来,方便前端调用

       [RoutePrefix("api/Values")]
        public class ValuesController : ApiController
        {
            // GET api/values
            [HttpGet]
            [Route("testLog")]
            public IEnumerable<string> testLog()
            {
                LogHelper.WriteLog("hello can you hear me~");

                return new string[] { "value1", "value2" };
            }
    (2)直接在action之前加上整个路由路径从而将整个路由暴露出来
        public class ValuesController : ApiController
        {
            // GET api/values
            [HttpGet]
            [Route("api/Values/testLog")]
            public IEnumerable<string> testLog()
            {
                LogHelper.WriteLog("hello can you hear me~");

                return new string[] { "value1", "value2" };
            }

    二:webAPI.Config里面为 

    config.MapHttpAttributeRoutes();

                config.Routes.MapHttpRoute(
                    name: "DefaultApi",
                    routeTemplate: "api/{controller}/{action}/{id}",
                    defaults: new { id = RouteParameter.Optional }
                );
    控制器里面加上【HttpGet,HttpPOST】认证, 不需要使用路由暴露接口

           [HttpGet]
            public IEnumerable<string> testLog()
            {
                LogHelper.WriteLog("hello can you hear me~");

                return new string[] { "value1", "value2" };
            }

    两种情况,如果不使用【httpPost】【httpGet】,后台会根据前台的请求类型匹配控制器的action,如get请求,不管前台访问哪个接口,后台均匹配以Get开头的控制器action

  • 相关阅读:
    Sublime Text前端开发环境配置
    CSS盒模型
    Angular-如何在Angular2中使用jQuery及其插件
    六:Angular 指令 (Directives)
    五:Angular 数据绑定 (Data Binding)
    四:Angular 元数据 (Metadata)
    三:Angular 模板 (Templates)
    二:Angular 组件 (Components)
    一:Angular 模块 (Modules)
    js获取浏览器内核
  • 原文地址:https://www.cnblogs.com/min-min-min/p/7777036.html
Copyright © 2011-2022 走看看