Flowchart · Routing
Routing tách làm hai bước: chọn rồi mới chạy
Hai bước của endpoint routing
UseRouting chọn endpoint, các middleware nằm giữa như UseAuthorization đọc được metadata của endpoint đó, rồi MapControllers mới chạy action; không route nào khớp thì trả 404.
CHƯA BIẾT ENDPOINT
ĐÃ BIẾT ENDPOINT
KHÔNG KHỚP
Request
GET /customers/{id}
Middleware đầu pipeline
ExceptionHandler · StaticFiles
UseRouting()
bước 1: CHỌN endpoint
404 Not Found
/customers/abc ≠ {id:guid}
Middleware của bạn
ctx.GetEndpoint()?.Metadata
UseAuthorization()
đọc [Authorize] trên endpoint
MapControllers()
bước 2: CHẠY action
Nhiều route cùng khớp:
chọn route cụ thể nhất,
không theo thứ tự khai báo
GetEndpoint() trả null
nếu đặt trước UseRouting()
CHÚ GIẢI
Hai bước của routing
Middleware
Request / kết quả
Đoạn pipeline
© tiennhm