-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathProgram.cs
More file actions
36 lines (28 loc) · 2.38 KB
/
Copy pathProgram.cs
File metadata and controls
36 lines (28 loc) · 2.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
using TH4.Data; // Nhập DbContext
using TH4.Middleware; // Nhập middleware bắt lỗi toàn cục tùy chỉnh.
using TH4.Services.Implementations; // Nhập lớp triển khai cụ thể của dịch vụ vật liệu.
using TH4.Services.Interfaces; // Nhập interface dịch vụ dùng cho dependency injection.
using Microsoft.EntityFrameworkCore; // Nhập Entity Framework Core
/* Cấu hình bộ khởi tạo ứng dụng ASP.NET Core và đăng ký các dịch vụ của framework. */
var builder = WebApplication.CreateBuilder(args); // Tạo bộ khởi tạo ứng dụng với cấu hình từ tham số dòng lệnh.
builder.Services.AddControllers(); // Đăng ký các controller MVC để xử lý request API.
builder.Services.AddEndpointsApiExplorer(); // Đăng ký metadata endpoint cho công cụ khám phá API.
builder.Services.AddSwaggerGen(); // Đăng ký dịch vụ sinh tài liệu Swagger/OpenAPI.
/* Đăng ký DbContext với SQL Server */
builder.Services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection")));
/* Đăng ký các dependency của ứng dụng để controller và middleware có thể sử dụng. */
builder.Services.AddScoped<IMaterialService, MethodSyntaxMaterialService>(); // Mỗi request sẽ nhận một IMaterialService dùng lớp MethodSyntaxMaterialService.
/* Xây dựng pipeline middleware và chuẩn bị ứng dụng để chạy. */
var app = builder.Build(); // Tạo đối tượng ứng dụng web từ cấu hình đã khai báo.
app.UseMiddleware<GlobalExceptionMiddleware>(); // Thêm middleware xử lý exception tùy chỉnh vào pipeline request.
/* Chỉ bật Swagger UI khi ứng dụng đang chạy ở môi trường Development. */
if (app.Environment.IsDevelopment()) // Kiểm tra xem ứng dụng có đang ở môi trường phát triển hay không.
{
app.UseSwagger(); // Cung cấp file tài liệu Swagger đã sinh ra.
app.UseSwaggerUI(); // Cung cấp giao diện Swagger UI để tương tác với API.
}
/* Hoàn tất pipeline HTTP và bắt đầu xử lý request. */
app.UseAuthorization(); // Thêm middleware phân quyền vào pipeline.
app.MapControllers(); // Ánh xạ route của các action trong controller vào endpoint pipeline.
app.Run(); // Khởi chạy ứng dụng web và bắt đầu lắng nghe request.