.NET Minimal APIs — nhẹ nhàng, gọn gàng mà vẫn xịn
.NET Minimal APIs — nhẹ nhàng, gọn gàng mà vẫn xịn
Hồi đó mình làm .NET Web API toàn dùng Controller với Action. Cũng quen rồi, không có gì để chê. Nhưng từ hồi .NET 6 ra mắt Minimal APIs, mình bắt đầu thử — và thiệt tình là ghiền luôn.
Minimal API là gì? Nôm na là thay vì phải tạo cả một class Controller với mấy cái attribute [HttpGet], [Route], giờ bạn chỉ cần viết:
var app = WebApplication.Create(args);
app.MapGet("/hello", () => "Hello World!");
app.Run();
Thấy chưa? 3 dòng là có một cái API chạy được. Khỏi cần Startup.cs, Program.cs cả đống cấu hình rườm rà.
Ảnh: ThisIsEngineering — Pexels
Cái mình thích nhất là Minimal APIs cho phép tổ chức code linh hoạt hơn hẳn. Với Controller, bạn bị gò vô khuôn mẫu: một controller một class, một action một method — nhìn thì gọn nhưng lâu ngày thành ra phình to. Với Minimal API, bạn có thể viết handler như một lambda nhỏ xíu, hoặc tách ra file riêng nếu cần. Tuỳ độ phức tạp của project mà linh động.
Mà Minimal API cũng hỗ trợ đầy đủ hết nha — dependency injection, middleware, authorization, rate limiting... không thiếu gì so với Controller hết. Chỉ khác là cú pháp gọn hơn thôi.
Tất nhiên, không có gì là toàn diện. Controller vẫn là lựa chọn tốt cho project lớn, nhiều người, cần tổ chức chặt chẽ và dùng Swagger auto-generated. Còn với mấy project cỡ vừa và nhỏ, hoặc microservices, Minimal APIs hợp lý hơn nhiều.
Ảnh: Kevin Ku — Pexels
Mình nghĩ tuỳ project mà chọn. Dân .NET giờ sướng hơn xưa — có nhiều option để lựa chọn, không còn bị ép vô một khuôn nữa.
Còn mấy bạn thì sao? Đã thử Minimal APIs chưa? Thấy thế nào?