.net core webapi中的路由规则

.net core webapi中的路由规则

       在webapi中,我们通常会创建Restful风格的接口,也就是api地址中只包含控制器的名称,不表明action的名称,然后通过提交请求的方式以及参数来判断要执行该controll中的哪个action。下面我看几个例子.

默认的路由规则
[Route("api/[controller]")]  
publicclassMoviesController: Controller {  
    [HttpGet]  
    publicIEnumerable < string > Get() {  
            returnnewstring[] {  
                "value1",  
                "value2"  
            };  
        }  
        [HttpPost]  
    publicvoid Post([FromBody] string value) {  
        return;  
    }  
} 

       在上述的几个Acton中,我们主要通过判断请求时get、post、delete还是put以及路径中的参数来匹配对应的action。

  • 以Get请求 /api/Movies/ 会匹配第一个action
  • 以Post请求 /api/Movies/ 会匹配第二个action

重载URI

如果在一个controll中有两个action的请求方式相同,并且有相同的参数个数,那该如何区分呢,我们可以使用重载URI。即在HttpGet()中给该action指定一个新了访问路径。

[HttpGet("Get1/{id}")]
        public int Get1(int id)
        {
            return 1;
        }

        [HttpGet("Get2/{id}")]
        public int Get2(int id)
        {
            return 2;
        }

上述两个action仅仅有请求方式和参数的个数或类型都无法区分。我们只能在访问路径上作修改。

  • api/Index/Get1/3 会匹配第一个
  • api/Index/Get2/3 会匹配第二个
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值