Định nghĩa các yêu cầu được xử lí như thế nào với middleware và endpoints (tiếp tục)
WebApplicationBuilder xây dựng một IWebHostEnvironment object và thiết lập nó trên đặc tính Environment.
IWebHostEnvironment bộc lộ một vài đặc tính liên quan đến môi trường, như
+ ContentRootPath – Vị trí của thư mục làm việc cho app, điển hình thư mục trong đó ứng dụng đang chạy.
+ WebRootPath – Vị trí của thư mục wwwroot cái chứa các file tĩnh.
+ EnvironmentName: Bất kể môi trường hiện tại có là một môi trường development hay production
IWebHostEnvironment đã được thiết lập trước khi thực thể WebApplication được tạo. EnvironmentName điển hình
được thiết lập bên ngoài bằng cách sử dụng một biến môi trường khi ứng dụng của bạn khởi động.
Code trên chỉ thêm một đoạn middleware đơn vào pipeline, nhưng WebApplication tự động thêm nhiều middleware hơn, bao
gồm 2 đoạn quan trọng và ý nghĩa nhất của middleware trong pipeline: routing middleware và endpoint middleware.
Routing middleware được thêm tự động vào start của pipeline, trước khi bất cứ middleware thêm nào được thêm trong
Program.cs (nên trước HttpLoggingMiddleware). Endpoint middleware được thêm vào end của pipeline, sau tất cả các
middleware khác được thêm vào trong Program.cs.
Chú ý WebApplication thêm một vài nhiều hơn middleware vào pipeline theo mặc định. Nó tự động thêm error-handling
middleware khi bạn đang chạy trong môi trường development, ví dụ. Tôi thảo luận một vài trong autoadded middleware
này chi tiết trong các học phần sau.
Cùng với nhau, cặp middleware này chịu trách nhiệm cho biên dịch yêu cầu để quyết định endpoint nào khởi động, cho
đọc các tham số từ yêu cầu, và cho khởi tạo trả lời cuối cùng. Cho mỗi yêu cầu, routing middleware sử dụng URL của
yêu cầu để quyết định endpoint nào khởi động. Sau đó phần còn lại của pipeline middleware thực thi cho đến khi yêu
cầu đi đến endpoint middleware, tại đó điểm endpoint middleware thực thi endpoint để khởi tạo trả lời cuối cùng.