بنظرم خیلی چیز مثبتیه چون باعث میشه مرز بین زبان ها کم بشه. یادمه اولین بار که با Golang میخواستم یه سرویس بالا بیارم، فریمورک fiber رو پیدا کردم و انقدر سینتکسش آشنا بود که خیلی سریع و راحت تونستم یه پروژه تر تمیز بالا بیارم!
اینکه زبان ها و فریمورک ها از هم یاد میگیرن و تکامل پیدا میکنن اتفاق بشدت جذابیه برام.
بنظرم قشنگی minimal api همونطور که توی اسمشون هست مینیمال بودن و simplicity هست. برای تعریف یک endpoint شما خیلی راحت نیاز دارین فقط توی app تون map کنین:
app.MapGet("/echo", () => "Hello from Minimal Apis!");آپشین دیگهای که خیلی کاربردی هست قابلیت Group کردن endpointهاست:
var api = app.MapGroup("/api");
api.MapGet("/echo", () => "Hello from Minimal Apis!"); // /api/echoیکی دیگه از نکاتی که راجب minimal api ها شاید جالب باشه بدونین هدف Microsoft از توسعهشون هست. از زبان David Fowler توسعه دهنده SignalR:
Minimal APIs was the final phase in breaking up the monolith MVC framework that was a carry-over from ASP.NET on .NET Framework into "pay for play" pieces that could be used to build applications that scale from a single endpoint to many endpoints in your web application. Over time, we refactored many of the features of MVC like action descriptors and routing, different types of filters, model binding, results etc into the core platform. This is one of the reasons why minimal APIs is faster, it's pay for play and less extensible than MVC (by design!).
به زبان خودمون، سعی کردن ماهیت قدیمی تر controller ها رو بشورن. توی minimal api ها نیازمندی ها رو به مرور و وقتی بهشون نیاز دارین اضافه میکنین.
از لحاظ پرفورمنس توی این لینک میتونین ببینین که با استفاده از BenchmarkDotNet و چندتا تست اساسی چه تفاوتی دارن. تفاوت پرفورمنس بین minimal api ها و controller ها خیلی زیاد نیست اما توی این تست ها minimal api ها همیشه یکم سریع تر بودن اما تفاوت اصلیشون توی مقدار memory allocation شون هست.
همه این حرف ها رو راجبشون زدیم، یه کتاب کوچولو هم معرفی میکنم که شاید خوشتون بیاد و بیشتر ازشون استفاده کنین.
@ever_code