理解ASP.NET Core - 路由(Routing) 和 EndPoint

2/28/2022 4:23:04 PM
730
0

Routing

  • Routing(路由):更准确的应该叫做Endpoint Routing,负责将HTTP请求按照匹配规则选择对应的终结点
  • Endpoint(终结点):负责当HTTP请求到达时,执行代码

路由是通过UseRoutingUseEndpoints两个中间件配合在一起来完成注册的:

public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
        // 添加Routing相关服务
        // 注意,其已在 ConfigureWebDefaults 中添加,无需手动添加,此处仅为演示
        services.AddRouting();
    }
    
    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        app.UseRouting();
    
        app.UseEndpoints(endpoints =>
        {
            endpoints.MapGet("/", async context =>
            {
                await context.Response.WriteAsync("Hello World!");
            });
        });
    }
}

 

  • UseRouting:用于向中间件管道添加路由匹配中间件(EndpointRoutingMiddleware)。该中间件会检查应用中定义的终结点列表,然后通过匹配 URL 和 HTTP 方法来选择最佳的终结点。简单说,该中间件的作用是根据一定规则来选择出终结点
  • UseEndpoints:用于向中间件管道添加终结点中间件(EndpointMiddleware)。可以向该中间件的终结点列表中添加终结点,并配置这些终结点要执行的委托,该中间件会负责运行由EndpointRoutingMiddleware中间件选择的终结点所关联的委托。简单说,该中间件用来执行所选择的终结点委托

 

UseRoutingUseEndpoints必须同时使用,而且必须先调用UseRouting,再调用UseEndpoints

更深度请参考原文,连接 https://www.cnblogs.com/xiaoxiaotank/p/15468491.html

 

全部评论



提问