全书目录

第十五篇:ASP.NET Core 完全指南 —— 国家级综合服务枢纽宇宙

第四章:Routing —— 总调度台如何分发请求

1 分钟 203 字 第 293 / 962 个阅读单元

路由(Routing)就是总调度台。它负责根据 URL、HTTP 方法等信息,把请求送到正确窗口。

csharp
app.MapGet("/services/{serviceId:int}", (int serviceId) =>
{
    return Results.Ok(new { serviceId, name = "营业执照办理" });
});

app.MapGet("/tickets/{ticketId:guid}", (Guid ticketId) =>
{
    return Results.Ok(new { ticketId, status = "处理中" });
});

这里有几个核心概念:

  • /services/{serviceId:int}:路由参数。
  • :int:guid:路由约束。
  • MapGet:这个窗口只接 GET 请求。
#路由不是“执行逻辑”,只是“找到窗口”

很多人容易混淆:

text
Routing 做的是“派号分流”
Endpoint 做的是“真正办理”
#一个请求是怎么被路由识别的
text
请求:GET /services/12

Routing 总调度台检查:
- 路径像不像 /services/{serviceId}
- HTTP 方法是不是 GET
- serviceId 能不能解析成 int

全部通过 -> 分配到目标窗口
任一不通过 -> 404 或方法不匹配

你可以把路由想成枢纽的一整块电子导引屏,而不是具体柜台。