使用ASP.NET Core 3.x 构建 RESTful API - 3.2 路由

路由机制会把一个请求的URI映射到一个Controller上面的Action,所以当你发送一个HTTP请求的时候,MVC框架会解析这个请求的URI,并尝试着把它映射到一个Controller上面的Action

 

两个路由中间件

ASP.NET Core 3.x里面,建议使用Endpoint路由来进行设置。但是我们需要先在请求的管道里面添加两个中间件:

  • app.UseRouting()。它是用来标记路由决策在请求管道里发生的位置,也就是在这里会选择端点。

  • app.UseEndpoints()。它是用来标记选择好的端点在请求管道的什么地方来执行。

这样做的好处就是,我们可以在选择端点和执行端点的中间位置插入其它的中间件。这样的话,插入到中间位置的中间件就会知道哪个端点被选取了,而且它也有可能会选择其它的端点。

 

一个非常好的例子就是授权中间件:

如果授权成功,那么就继续执行到之前选定的端点,否则的话就会跳转到其它端点或者短路返回。

 

官方文档:Startup里面路由配置的官方文档。

 

映射端点

还是可以有两种方式进行设置:基于约定 或者 基于属性

基于约定的路由,例如这两种:

这种方式更适合于服务器端的Web应用程序。

 

而针对Web API,使用基于属性的路由更加适合:

可以看到,这里面仅仅映射了Controller,并没有使用任何约定,所以我们需要采用属性(Attribute)来进行设定。这里需要用到属性(attribute)和URI模板。

  • 属性(Attribute)。例如[Route][HttpGet][HttpPost]等等,可以把它们放在Controller级别,也可以放在Action级别上。

  • URI模板。将属性结合URI模板一起使用,就可以把请求映射到ControllerAction上面。

 

例如:

 

官方文档:路由基础知识。

官方文档请点击原文链接.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值