اتصال پارامترها از فرمها، توکنهای ضد جعل و 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، مراحل ذکر شده در زیر را دنبال کنید.
- Visual Studio 2022 IDE را راه اندازی کنید.
- روی “ایجاد پروژه جدید” کلیک کنید.
- در پنجره “ایجاد پروژه جدید”، “ASP.NET Core Web API” را از لیست الگوهای نمایش داده شده انتخاب کنید.
- بعدی را کلیک کنید.
- در پنجره «پیکربندی پروژه جدید»، نام و مکان پروژه جدید را مشخص کنید. به صورت اختیاری، بسته به تنظیمات برگزیده خود، کادر انتخاب “قرار دادن راه حل و پروژه در همان فهرست” را علامت بزنید.
- بعدی را کلیک کنید.
- در پنجره «اطلاعات اضافی» که در ادامه نشان داده شده است، «NET 8.0 (Long Term Support)» را به عنوان نسخه فریمورک انتخاب کنید و تیک کادری که می گوید «استفاده از کنترلرها» را بردارید، زیرا ما در این مورد از حداقل API استفاده خواهیم کرد. پروژه.
- در جای دیگری از پنجره «اطلاعات اضافی»، «نوع احراز هویت» را روی «هیچکدام» (پیشفرض) بگذارید و مطمئن شوید که کادرهای «فعال کردن پشتیبانی باز API»، «پیکربندی برای HTTPS» و «فعال کردن داکر» را انتخاب کنید. ” کنترل نشده باقی بماند. ما در اینجا از هیچ یک از این ویژگی ها استفاده نخواهیم کرد.
- روی ایجاد کلیک کنید.
ما از این پروژه 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) را در طول زمان اجرا حذف میکند.
اکنون میتوانید از پشتیبانی 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>
پست های مرتبط
نحوه استفاده از ویژگی های حداقل API جدید در ASP.NET Core 8
نحوه استفاده از ویژگی های حداقل API جدید در ASP.NET Core 8
نحوه استفاده از ویژگی های حداقل API جدید در ASP.NET Core 8