Minimal API چیست؟
روش سبک و کمکد برای ساخت Web API در ASP.NET Core، بدون نیاز به Controller و ساختار MVC کامل — یک فایل `Program.cs` کافی است.
چرا مهم است؟
برای سرویسهای کوچک، Microservice یا Endpointهای ساده، Minimal API بدون سربار کلاسهای اضافه (Controller، Attribute Routing) به سریعترین شکل ممکن یک API را راه میاندازد.
تعریف
Minimal API معرفیشده در .NET 6، Endpointها را مستقیم روی شیء WebApplication با متدهایی مثل MapGet/MapPost تعریف میکند، بدون نیاز به کلاس Controller.
مثال
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddScoped<IProductService, ProductService>();
var app = builder.Build();
app.MapGet("/products", async (IProductService service) => await service.GetAllAsync());
app.MapPost("/products", async (Product product, IProductService service) =>
{
await service.AddAsync(product);
return Results.Created($"/products/{product.Id}", product);
});
app.Run();
چه زمانی مناسب است
✔ Microserviceهای کوچک ✔ Prototype سریع ✔ Endpointهای ساده CRUD ❌ APIهای بزرگ با دهها Endpoint پیچیده — آنجا سازماندهی MVC (Controller جدا برای هر منبع) خواناتر میماند.
اشتباه رایج
❌ نوشتن کل منطق کسبوکار مستقیم داخل Lambda یک Endpoint — حتی در Minimal API، منطق واقعی باید در یک Service تزریقشده باشد، نه داخل خود تعریف Route.
منبع و مطالعه بیشتر
خلاصه
Minimal API با MapGet/MapPost بدون Controller یک API سبک میسازد، مناسب Microservice و پروژههای کوچک. حتی اینجا منطق کسبوکار باید در Service باشد نه داخل خود Endpoint. مرجع کامل: مستندات Minimal APIs، Microsoft Learn.
