Pipeline đơn giản tình huống 3: một ứng dụng minimal API (tiếp tục)
Sự thêm middleware vào WebApplication để hình thành pipeline bây giờ quen thuộc với bạn, nhưng một vài điểm đáng
chú ý trong ví dụ này:
+ Middleware được thêm với các phương thức Use*().
+ MapGet định nghĩa một endpoint, không phải middleware. Nó định nghĩa các endpoints cái routing và endpoint
middleware có thể sử dụng.
+ WebApplication tự động thêm một vài middleware vào pipeline, như EndpointMiddleware.
+ Trật tự của các lời gọi phương thức Use*() là quan trọng và định nghĩa trật tự của middleware pipeline.
Trước tiên, tất cả các phương thức cho thêm middleware bắt đầu với Use. Như tôi đã đề cập trước kia, cái
này là nhờ thông lệ sử dụng các phương thức mở rộng để mở rộng chức năng của WebApplication; gắn trước các
phương thức với Use làm chúng dễ dàng hơn để khám phá.
Thứ hai, nó là quan trọng để hiểu rằng phương thức MapGet không thêm middleware vào pipeline; nó định
nghĩa một endpoint trong ứng dụng của bạn. Các endpoints này được sử dụng bởi các routing và endpoint
middleware. Bạn sẽ học nhiều hơn về các endpoints và routing trong học phần sau.
Tip Bạn có thể định nghĩa các endpoints cho app của bạn bằng cách sử dụng MapGet bất cứ đâu trong Program.cs
trước lời gọi tới app.Run(), nhưng các lời gọi điển hình được đặt sau định nghĩa middleware pipeline.
Trong học phần trước, tôi đã đề cập rằng WebApplication tự động thêm middleware vào app của bạn. Bạn có
thể thấy quá trình này trong thực tế trong code trên tự động thêm EndpointMiddleware vào cuối middleware
pipeline. WebApplication cũng tự động thêm developer exception page middleware vào bắt đầu của middleware
pipeline khi bạn đang chạy trong phát triển. Kết quả là, bạn có thể bỏ qua lời gọi tới UseDeveloperExceptionPage()
khỏi code trên, và middleware pipeline của bạn cơ bản sẽ là tương tự.