使用ASP.NET Core 3.x 构建 RESTful API - 3.2 路由
路由機制會把一個請求的URI映射到一個Controller上面的Action,所以當你發(fā)送一個HTTP請求的時候,MVC框架會解析這個請求的URI,并嘗試著把它映射到一個Controller上面的Action。
?
兩個路由中間件
在ASP.NET Core 3.x里面,建議使用Endpoint路由來進行設置。但是我們需要先在請求的管道里面添加兩個中間件:
app.UseRouting()。它是用來標記路由決策在請求管道里發(fā)生的位置,也就是在這里會選擇端點。
app.UseEndpoints()。它是用來標記選擇好的端點在請求管道的什么地方來執(zhí)行。
這樣做的好處就是,我們可以在選擇端點和執(zhí)行端點的中間位置插入其它的中間件。這樣的話,插入到中間位置的中間件就會知道哪個端點被選取了,而且它也有可能會選擇其它的端點。
?
一個非常好的例子就是授權中間件:
如果授權成功,那么就繼續(xù)執(zhí)行到之前選定的端點,否則的話就會跳轉(zhuǎn)到其它端點或者短路返回。
?
官方文檔:Startup里面路由配置的官方文檔。
?
映射端點
還是可以有兩種方式進行設置:基于約定 或者 基于屬性。
基于約定的路由,例如這兩種:
這種方式更適合于服務器端的Web應用程序。
?
而針對Web API,使用基于屬性的路由更加適合:
可以看到,這里面僅僅映射了Controller,并沒有使用任何約定,所以我們需要采用屬性(Attribute)來進行設定。這里需要用到屬性(attribute)和URI模板。
屬性(Attribute)。例如[Route],[HttpGet],[HttpPost]等等,可以把它們放在Controller級別,也可以放在Action級別上。
URI模板。將屬性結(jié)合URI模板一起使用,就可以把請求映射到Controller的Action上面。
?
例如:
?
官方文檔:路由基礎知識。
官方文檔請點擊原文鏈接.
總結(jié)
以上是生活随笔為你收集整理的使用ASP.NET Core 3.x 构建 RESTful API - 3.2 路由的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 给 IConfiguration 写一个
- 下一篇: asp.net ajax控件工具集 Au