۲۹ شهریور ۱۴۰۳

Techboy

اخبار و اطلاعات روز تکنولوژی

نحوه استفاده از ویژگی های حداقل API جدید در ASP.NET Core 8

اتصال پارامترها از فرم‌ها، توکن‌های ضد جعل و Native AOT اکنون در ASP.NET Core پشتیبانی می‌شوند. در اینجا نحوه استفاده از آنها آورده شده است.

اتصال پارامترها از فرم‌ها، توکن‌های ضد جعل و Native AOT اکنون در ASP.NET Core پشتیبانی می‌شوند. در اینجا نحوه استفاده از آنها آورده شده است.

ASP.NET Core یک مدل میزبانی ساده به نام حداقل API ارائه می دهد که به ما امکان می دهد API های سبک وزن با حداقل وابستگی بسازیم. ایده آل برای ساخت سرویس های سریع و ساده، حداقل API ها در ابتدا در ASP.NET Core 6 معرفی شدند تا پیچیدگی API های سنتی را از بین ببرند و ساخت میکروسرویس ها را آسان تر کنند.

هدف این پست بررسی ویژگی‌های جدید برای ساخت حداقل APIهای معرفی شده در ASP.NET Core 8 است. برای استفاده از نمونه کدهای ارائه شده در این مقاله، باید Visual Studio 2022 را در سیستم خود نصب کنید. اگر قبلاً نسخه‌ای ندارید، می‌توانید Visual Studio 2022 را از اینجا دانلود کنید.

یک پروژه ASP.NET Core Web API در Visual Studio 2022 ایجاد کنید

برای ایجاد یک پروژه ASP.NET Core 8 Web API در Visual Studio 2022، مراحل ذکر شده در زیر را دنبال کنید.

  1. Visual Studio 2022 IDE را راه اندازی کنید.
  2. روی “ایجاد پروژه جدید” کلیک کنید.
  3. در پنجره “ایجاد پروژه جدید”، “ASP.NET Core Web API” را از لیست الگوهای نمایش داده شده انتخاب کنید.
  4. بعدی را کلیک کنید.
  5. در پنجره «پیکربندی پروژه جدید»، نام و مکان پروژه جدید را مشخص کنید. به صورت اختیاری، بسته به تنظیمات برگزیده خود، کادر انتخاب “قرار دادن راه حل و پروژه در همان فهرست” را علامت بزنید.
  6. بعدی را کلیک کنید.
  7. در پنجره «اطلاعات اضافی» که در ادامه نشان داده شده است، «NET 8.0 (Long Term Support)» را به عنوان نسخه فریمورک انتخاب کنید و تیک کادری که می گوید «استفاده از کنترلرها» را بردارید، زیرا ما در این مورد از حداقل API استفاده خواهیم کرد. پروژه.
  8. در جای دیگری از پنجره «اطلاعات اضافی»، «نوع احراز هویت» را روی «هیچ‌کدام» (پیش‌فرض) بگذارید و مطمئن شوید که کادرهای «فعال کردن پشتیبانی باز API»، «پیکربندی برای HTTPS» و «فعال کردن داکر» را انتخاب کنید. ” کنترل نشده باقی بماند. ما در اینجا از هیچ یک از این ویژگی ها استفاده نخواهیم کرد.
  9. روی ایجاد کلیک کنید.
داکر 105 میلیون دلار بودجه جمع آوری می کند تا تمرکز خود را بر توسعه دهندگان افزایش دهد

ما از این پروژه ASP.NET Core Web API برای کار با نمونه کدهای ارائه شده در بخش های زیر استفاده خواهیم کرد.

یک API حداقل در ASP.NET Core ایجاد کنید

می توانید کد تولید شده را با قطعه کد زیر جایگزین کنید تا حداقل API ایجاد کنید.

var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
app.MapGet("/", () => "Hello, World!");
app.Run();

هنگامی که برنامه را اجرا می کنید، متن “Hello World!” در مرورگر وب شما نمایش داده می شود.

ما ویژگی‌های جدید را در حداقل API در بخش‌های بعدی بررسی می‌کنیم.

از model binding در حداقل APIها استفاده کنید

پشتیبانی از اتصال FromForm با ASP.NET Core 8 به حداقل APIها اضافه شد. قبل از اینکه به بررسی FromForm binding بپردازیم، بیایید نگاهی گذرا به انواع دیگر اتصال مدل که می‌توانیم در APIهای حداقل استفاده کنیم، بیندازیم.

حداقل APIهای هسته اصلی ASP.NET از انواع زیر مدل اتصال پشتیبانی می کنند:

  • FromBody binding
  • FromHeader binding
  • FromRoute binding
  • FromQuery binding
  • FromForm binding

با پشتیبانی جدید از اتصال FromForm در حداقل APIها، اتصال پارامتر از فرم‌ها اکنون برای مجموعه‌هایی مانند فهرست‌ها و فرهنگ‌های لغت و انواع پیچیده پشتیبانی می‌شود.

FromBody binding

FromBody binding داده‌ها را از بدنه درخواست HTTP استخراج می‌کند و آن را به پارامترهای روش‌های اقدام شما اختصاص می‌دهد.

[HttpPost]
public IActionResult CreateAuthor([FromBody] Author author)
{
    //Usual code
}

FromHeader binding

FromHeader binding داده‌ها را از سرصفحه‌های درخواست HTTP استخراج می‌کند و آن را به پارامترهای روش‌های اقدام شما اختصاص می‌دهد.

[HttpGet]
public IActionResult GetAuthors([FromHeader("Authorization")] string authHeader)
{
    //Write your code here to validate the authorization token
}

FromRoute binding

FromRoute binding برای بازیابی داده‌ها از بخش‌های مسیر URL درخواست و تخصیص آن به پارامترهای روش‌های اقدام شما استفاده می‌شود. می توانید از این نوع اتصال مدل برای شناسایی یک منبع خاص استفاده کنید.

[HttpGet("{id}")]
public IActionResult GetAuthorById(int id)
{
    //Write your code here to retrieve an author instance based on id
}

FromQuery binding

FromQuery binding برای بازیابی داده‌ها از رشته جستجوی یک درخواست HTTP و استفاده از آن برای پر کردن یک شی مدل استفاده می‌شود.

[HttpGet]
public ActionResult<List<Author>> GetAuthors([FromQuery] AuthorFilter filter)
{
    //Write code here to process the filter criteria and retrieve the list of filtered author records
}

FromForm binding

می توانید از FromForm binding برای استخراج داده ها از فیلدهای فرم ارسال شده در حداقل API های خود استفاده کنید. به عنوان مثال، قطعه کد زیر نشان می دهد که چگونه می توانید از پارامترهای استخراج شده از یک فرم ارسال شده برای ساختن یک نمونه نویسنده جدید استفاده کنید.

[HttpPost]
public async Task<IActionResult> CreateAuthor([FromForm] Author author)
{
  //Usual code
}

از توکن های ضد جعل در حداقل API ها استفاده کنید

ASP.NET Core 8 همچنین پشتیبانی از توکن‌های ضد جعل را به حداقل APIها می‌آورد. برای استفاده از این ویژگی، باید روش AddAntiForgery را برای ثبت خدمات ضد جعل با خط لوله پردازش درخواست، همانطور که در قطعه کد زیر نشان داده شده است، فراخوانی کنید.

var builder = WebApplication.CreateBuilder();
builder.Services.AddAntiforgery();
var app = builder.Build();
app.MapGet("/",()=>"Hello World!");
app.Run();

قطعه کد زیر نشان می دهد که چگونه می توانید از نشانه های ضد جعل در حداقل API های خود استفاده کنید.

app.MapGet("/", (HttpContext context, IAntiforgery antiforgery) =>
{
    var token = antiforgery.GetAndStoreTokens(context);
    return Results.Ok("Success...");
});

از Native AOT در حداقل APIها استفاده کنید

شما می توانید مستقیماً کد دات نت را به کد بومی (AOT) با استفاده از قابلیت های Native AOT پشتیبانی شده توسط NET Core کامپایل کنید. پیش‌کامپایل، زمان راه‌اندازی برنامه شما را بهبود می‌بخشد، زیرا نیاز به کامپایل‌سازی به‌موقع (JIT) را در طول زمان اجرا حذف می‌کند.

نحوه کار با فیلترهای نقطه پایانی در ASP.NET Core 7

اکنون می‌توانید از پشتیبانی Native AOT در حداقل APIهای خود در ASP.NET Core 8 استفاده کنید. برای افزودن پشتیبانی از Native AOT به پروژه خود، باید ویژگی PublishAot را همانطور که در قطعه کد زیر نشان داده شده است به فایل پروژه خود اضافه کنید.< /p>

<PropertyGroup><PublishAot>true</PublishAot></PropertyGroup>

توجه داشته باشید که می‌توانید از دستور زیر در خط فرمان توسعه‌دهنده ویژوال استودیو برای ایجاد یک پروژه حداقل API جدید با پشتیبانی از Native AOT استفاده کنید. سپس می‌توانید مجموعه‌های API حداقل ASP.NET Core خود را در کدهای بومی از قبل کامپایل کنید که به‌جای بسته‌بندی آن با زمان اجرا NET Core، مستقیماً روی سیستم مورد نظر اجرا می‌شوند.

dotnet new webapiaot

حداقل API در ASP.NET Core 9

در اکوسیستم هسته ASP.NET، پشتیبانی از حداقل APIها روز به روز بهبود می یابد. در حالی که .NET 9 هنوز در وضعیت پیش‌نمایش است، چندین ویژگی جدید به حداقل APIها در ASP.NET Core 9 اضافه شده‌اند. زمانی که نسخه رسمی ASP.NET Core 9 در دسترس قرار گرفت، در پست آینده در اینجا درباره آنها صحبت خواهم کرد.< /p>