.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 会匹配第二个
发布了19 篇原创文章 · 获赞 6 · 访问量 9422

猜你喜欢

转载自blog.csdn.net/u012712556/article/details/102640242