ویژگی های جدید ASP.NET Core
بلاگ آکادمی لرن فایلز
تخفیف بیسابقه ویژه جمعه سیاه تا دوشنبه سایبری امسال شروع شد
دریافت تخفیفبلاگ آکادمی لرن فایلز
با API های وب ارائه شده در ASP.NET Core شما می توانید از ویژگی های زیادی برای پیکربندی فریم ورک خود بهره ببرید. این ویژگی ها بسیار قدرتمند هستند و به شما توانایی های زیادی می دهند. مدل سازی و کار با HTTP بسیار راحت خواهد بود. در این مقاله، ویژگی های جدید ASP.NET Core را با هم بررسی خواهیم کرد.
با ASP.NET Core ویژگی های زیادی برای کار با داده ها به عنوان بخشی از درخواست HTTP وجود دارند. با #C این خصیهه ها به شما امکان می دهند API های ساده، روان و معین ایجاد کنید. این خصیصه ها بسیار قویاند ولی انتخاب نوع مناسب آن را برای کار با داده های HTPP بسیار مهم است. در این مقاله، روش تعریف صحیح API و مسیر یابی آن را به شما آموزش می دهیم.
ASP.NET Core دارای خصیصه هایی برای هشت دستور مختلف HTTP دارد که در سند RFC-7231، مهندسی اینترنتی منتشر شده اند. در این جا لیستی از این دستور ها ارائه شده است:
HTTPGetAttribute
HTTPPostAttribute
HTTPPutAttribute
HTTPDeleteAttribute
HTTPHeadAttribute
HTTPPatchAttribute
HTTPOptionsAttribute
به همین شکل، فریم ورک یک Routeattribute نیز دارد که در ادامه آنرا بررسی خواهیم کرد.
به علاوه ی خصیصه های معین شده برای HTTP، فرمان های اجرایی آن ها نیز در زیر لیست شده اند :
FromServicesAttribute
FromRouteAttribute
FromQueryAttribute
FromBodyAttribute
FromFormAttribute
فرض کنید ما در یک سیستم سفارش دهی کار می کنیم. یک مدل سفارش دهی داریم و باید یک API با نام RESTful ایجاد کنیم که به مشتریان اجازه می دهد تا سفارش بدهند، بخوانند و بروز رسانی کنند. به شکل زیر:
ASP.NET Core یک Route attribute قوی ایجاد میکند. می توان از این خصیصه برای تعریف یک مسیر سطح بالا استفاده کرد. این کار باعث می شود تا یک مسیر جامع مثل زیر ایجاد شود:
بیایید که درخواست HTTP GET را در نظر بگیریم:
در مجموعه ی سفارشات ما، هر سفارش یک شاخص منحصر بفرد است. میتوان با یک id در آن سفارش انجام داد. دستوری که این کار را را انجام می دهد به شکل زیر نوشته می شود:
بیشتر بخوانید:
این خصیصه باعث می شود تا فریم ورک ASP.NET Core با این دستور به شکل یک فرمان HTTP رفتار کند. یک تمپلیت به عنوان مسیر برای اجرای درخواست های مشابه مورد استفاده قرار خواد گرفت. در این تمپلیت، مقدار {id} به قسمت پارامتر id در مسیر اختصاص خواهد یافت.
می توانستیم خیلی راحت از FromQuery استفاده کنیم. این باعث می شد تا فریم ورک یک مقدار integer را برای id در نظر بگیرد. این مقدار به عنوان پارامتر های id عبور داده شده و بقیه مشابه خواهند بود.
البته استفاده از fromRoute رایج تر است:
HTTP POST Request
حالا در ادامه ی مثال سفارش دهی، باید به کاربران این امکان را بدهیم تا سفارش های خود را ایجاد کنند.
درخواستHTTP POST را وارد کنید.
Syntax برای نوشتن این فرمان شبیه به HTTP GET است. اما به جای استفاده از یک منبع از IactionResults استفاده می کنیم. این رابط کلاس های زیر مجموعه بیشتری دارد که در controller قابل دسترسی هستند. با یک فرمان HTTP GET، درخواست برای یک منبع است اما درHTTP POST درخواست برای ایجاد یک منبع و پاسخ مربوط به آن در نتیجه ی POST می باشد.
این بار، ما به یک “{id}”در تمپلیت نیاز نداریم چون که در بدنه ی درخواست HTTP POST تمامی شی سفارش قرار دارد. به علاوه، ما باید از async برای فعال سازی await در این روش استفاده کنیم.
Body در این روش به یک جمله گفته می شود. به جای این که سفارش را در FromService بیابیم، از یک instance در کلاس استفاده خواهد شد.
به جای استفاده از FromBody می توانید به راحتی از FromForm برای مقدار دهی به پارامتر استفاده کنید. این باعث می شود که HTTP POST به شکل دیگری اجرا شود. سایر خصیصه ها به همان شکل باقی می مانند و نباید از آن ها استفاده کنید:
به شکل پیش فرض اگر یک منبع ایجاد شود، که در این مثال یک سفارش است، شما باید یک کد ۲۰۱ ارائه کنید. اگر سرور نتوانست سریعا ایجاد کند یک ۲۰۲ برگردانید. برای راحتی برنامه نویس روش های ()Ok() ،Created و ()Accepted در کلاس کنترلر قرار گرفته اند.
آخرین کاری که در این مقاله انجام می دهیم یک فرمان delete است که این کار با یک فرمان HTTP DELETE صورت می گیرد. این دستور منبع ( یا همان سفارش در این مثال) را حذف می کند و درخواست های بعدی برای منبع کد خطای ۲۰۴ یا نبود محتوا را بر می گردانند.
دستور HTTP DELETE شبیه به HTTP GET است و {id} به عنوان بخشی از مسیر مورد استفاده قرار می گیرد و سپس آنرا حذف می کند:
با وجود این که استفاده از FromQuery با یک HTTP DELETE ممکن است، ولی این کار اصلا پیشنهاد نمی شود. بهتر است با همان دستور FromRoute ادامه دهید.
فریم ورک ASP.NET کار ساخت API هایی مثل RESTful در مثال بالا را بسیار ساده می کند. قدرت این فریم ورک به شما اجازه می دهد تا کد های #C خود را به شکلی تنظیم کنید تا با الگوهای برنامه نویسی Declarative هم خوانی داشته باشد. فعالیت های کنترلر به خودی خود مستند می شوند و محدودیت های آن براحتی مشخص می شود. به عنوان یک کدنویس #C باید بگویم که کدنویسی و کد خوانی بسیار روان و راحت است. در نتیجه، خصیصه های زیر مکمل یکدیگر هستند.
منبع : dotnetcurry.com