Minimal Api در Asp Core 6 چیست؟ کاربرد Minimal Api چیست ؟
همونطور که می دونید در Asp.net core 6 مبحث API ها تفاوتهایی داشتن و Minimal Api ها اضافه شده. لطفا توضیح بدید:
- minimal api چیست؟
- کاربرد minimal api ها چیست؟
- نحوه ایجاد عملیات CRUD با minimal api ها چگونه است؟
Minimal Api در Asp.net Core 6 چیست ؟
قبل از معرفی دات نت 6 برای ساختن یک API در Asp.net Core می بایست یک کنترلر جدید ایجاد می کردیم که از کلاس ControllerBase مشتق می شد. همچنین در بالای کنترلر هم باید مشخص می کردیم که این یک API یا Endpoint می باشد و مسیر یا Routing هم مشخص می کردیم.
به فرمت زیر که یک WEB API استاندارد یا School API یا Normal Api می باشد دقت کنید.
[Route("api/[controller]")]
[ApiController]
public class MyApiController : ControllerBase
{
...
}
گاهی برای انجام کارهای کوچک یا یک سرویس کوچک و خلاصه ایجاد یک Endpoint جداگانه و کلاسهای جداگانه کمی زیاده روی به نظر می آمد. به همین جهت مایکروسافت در نسخه دات نت 6 مبحث Minimal Api ها قرارداده است که برای استفاده از آنها دیگر نیازی نیست یک کنترلر جداگانه ایجاد کرد.
در واقع میتوان گفت بزرگترین تفاوت Normal Api و Minimal Api این می باشد که Minimal Api ها نیازی به کنترلر جداگانه ندارند و به راحتی و در چند خط کد ساده می توان به یک مسیر دسترسی پیدا کرد.
برخی از قابلیت های استفاده از Minimal Api ها
در ادامه برخی از قابلیت های Minimal Api ها را میگیم:
- نکته اول اینکه Minimal Api ها جایگزین Normal Api ها نیستن و کماکان برای کارهای بزرگ و حرفه ای و API هایی که نیاز به سطوح دسترسی و ... دارن از همون API های سابق باید استفاده کنید.
- سرعت دسترسی اطلاعات در Minimal Api ها بیشتر از Normal Api ها می باشد. به طور متوسط در یک شرایط یکسان در هر ثانیه 2000 درخواست می توان توسط در Normal Api ارسال کرد در حالی که در Minimal Api ها این درخواست ها به حدود 24000 میرسد.
- استفاده از Minimal Api ها بسیار ساده می باشد. اما این سادگی برای دستورات ساده است و در صورتی که پیچیدگی هایی در دستورات وجود داشته باشد ممکن است بسیار پیچیده و غیرقابل فهم شود. بنابراین دقت کنید برای انجام امور و درخواست های ساده از این مدل Api ها استفاده کنید.
- در Minimal Api ها هم می توان Routing و Action و ... تعریف کرد ولی همه این موارد در یک خط قابل تعریف می باشد.
- می شه گفت Minimal Api ها کاربردی شبیه به میکروسرویس ها رو دارن و برای ارائه خدمات و سرویس های کوچک بسیار مناسب می باشد.
آموزش ایجاد و کار با Minimal Api ها در Asp.net Core 6
یک پروژه از نوع Asp.net Core Web Api Empty در ویژوال استودیو 2022 ایجاد کنید.
در فرم Additional Information تیک Use Controller رو بردارید چون نیازی به کنترلر برای کار با Minimal Api ها نداریم. سپس روی دکمه Create کلیک کنید.
در کلاس Program.cs کدها رو به شکل زیر بنویسید.
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
var app = builder.Build();
// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI();
}
app.UseHttpsRedirection();
app.MapGet("/", () =>
{
return "Hello Hello";
});
app.MapPost("/", () =>
{
return Results.Ok("Call Post API");
});
app.MapPut("/", () =>
{
return Results.Ok("Call Put API");
});
app.MapDelete("/", () =>
{
return Results.Ok("Call Delete API");
});
app.Run();
خب حالا اگر پروژه رو Run کنید می بینید که توسط swagger می تونید به minimal api ها دسترسی داشته باشید. در کدهای بالا متدهای Post و Put و Delete و Get استفاده شده ولی بخاطر اینکه بتونم ساده تر بهتون نمایشش بدم دستورات رو توش ننوشتم.
تفاوت Asp.net Core 5 و Asp.net Core 6
دوره آموزشی رایگان عملیات CRUD در Minimal Api ها در دات نت 6
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- نمایش صفحه در پنجره جدید با کلیک روی لینک (تگ a) در Asp
- افزودن مقادیر به صورت دستی به List دریافت شده از ریپازیتوری
- کار با CkEditor با قابلیت آپلود عکس
- خطا در ایجاد migration در Asp.net core
- تفاوت های Asp.net core و Asp.net mvc چیه؟
- دلیل اسپم شدن ایمیل های ارسالی از سرور
- نحوه لایه بندی پروژه Core و اضافه کردن به IIS
- ارسال ایمیل در Asp.net core
- آیا میشه در mvc core از کامپونت استفاده کرد
- آپلود فایل در Asp.net core چگونه است؟
- حذف کامل یک رکورد در جدول ریلیشن شده
- اشکال در آپلود فایل ویدیو در mvc core 2