
در سال های اخیر، مشخص شده است که HTTP فقط برای ارائه صفحات HTML نیست ویک پلتفرم قدرتمند برای ساخت Web API ها با استفاده از تعداد انگشت شماری از افعال (GET، POST، و غیره) به همراه چند مفهوم ساده مانند URI و هدر است. ASP Core Web API مجموعه ای از کامپوننت هاست که برنامه نویسی HTTP را ساده می کند. Web API در ASP Core به طور خودکار جزئیات انتقال سطح پایین HTTP را مدیریت می کند. Web API در Asp Core بسیار انعطاف پذیر و به راحتی قابل گسترش است. سبک معماری REST ثابت کرده است که روشی مؤثر برای استفاده از HTTP است - اگرچه مطمئناً این تنها رویکرد معتبر برای HTTP نیست.
REST چیست؟
REpresentational State Transfer یه به اختصار REST یک سبک معماری برای ارائه استانداردهای بین سیستم های کامپیوتری در وب است که ارتباط سیستم ها با یکدیگر را آسان تر می کند. سیستمهای سازگار با REST، که اغلب سیستمهای RESTful نامیده میشوند، نگرانیهای مشتری و سرور را از هم جدا میکنند.
REST بر رابطه Client-Server متکی است. این اساساً به این معنی است که برنامه کلاینت و برنامه سرور باید بتوانند به طور جداگانه و بدون وابستگی به یکدیگر تکامل یابند.
REST بدون حالت یا stateless است. این بدان معناست که ارتباط بین کلاینت و سرور همیشه حاوی تمام اطلاعات مورد نیاز برای انجام درخواست است. هیچ حالت سشن ی در سرور وجود ندارد و به طور کامل در سمت کلاینت نگهداری می شود.
REST یک اینترفیس یکنواخت(uniform interface) بین اجزاء فراهم می کند.
انتخاب ابزار مناسب برای نوشتن سرویسهای RESTful بسیار مهم است زیرا ما باید به مقیاسپذیری، نگهداری، مستندات و سایر جنبههای مرتبط اهمیت دهیم. ASP Core یک API قدرتمند و آسان برای استفاده به ما می دهد که برای دستیابی به این اهداف عالی است.
CRUD چیست؟
چهار عمل ایجاد، خواندن، بهروزرسانی و حذف(Create, Read, Update, Delete) یا به اصطلاح CRUD چهار عملکرد اساسی هستند که مدلها باید بتوانند انجام دهند.
CRUD یک کلمه مخفف است که از دنیای برنامه نویسی کامپیوتر آمده است و به چهار عملکردی اشاره دارد که برای اجرای یک برنامه ذخیره سازی پایدار ضروری هستند: ایجاد، خواندن، به روز رسانی و حذف. ذخیره سازی پایدار به هر وسیله ذخیره سازی داده ای اطلاق می شود که پس از خاموش شدن دستگاه حالت را حفظ می کند، مانند هارد دیسک یا درایو حالت جامد. در مقابل، حافظه با دسترسی تصادفی و حافظه پنهان داخلی دو نمونه از حافظه فرار هستند، آنها حاوی داده هایی هستند که در صورت قطع برق پاک می شوند.
هنگامی که ما در حال ساخت API هستیم، باید مدل های ما چهار نوع عملکرد اساسی را ارائه دهند. مدل باید قادر به ایجاد، خواندن، به روز رسانی و حذف منابع باشد. یک مدل باید حداکثر توانایی انجام این چهار عملکرد را داشته باشد تا کامل شود. اگر عملی را نتوان با یکی از این چهار عملیات توصیف کرد، باید به طور بالقوه مدلی برای خود باشد.
پارادایم CRUD در ساخت برنامه های کاربردی وب رایج است، زیرا چارچوبی جالب برای یادآوری توسعه دهندگان از نحوه ساخت مدل های کامل و قابل استفاده فراهم می کند. اصطلاح CRUD اولین بار توسط جیمز مارتین در کتاب مدیریت محیط پایگاه داده در سال 1983 رایج شد.
CRUD و دیتابیس
مخفف CRUD به عملیات اصلی اشاره دارد که توسط پایگاه های داده پیاده سازی می شوند. هر حرف CRUD می تواند به یک عبارت استاندارد زبان پرس و جو ساختاریافته (SQL) نگاشت شود.
SQL | CRUD |
---|---|
INSERT | Create |
SELECT | Read |
UPDATE | Update |
DELETE | Delete |
اگر چه پایگاه داده های رابطه ای یک لایه پایدار رایج در برنامههای کاربردی نرم افزاری هستند، لایههای پایداری متعدد دیگری نیز وجود دارند. عملکرد CRUD را می توان به عنوان مثال با پایگاه داده های اسناد، پایگاه داده های شی، پایگاه های داده XML، فایل های متنی یا فایل های باینری پیاده سازی کرد.
توجه: برخی از سیستمهای کلان داده UPDATE را پیادهسازی نمیکنند، اما تنها دارای یک INSERT (ژورنال) هستند که هر بار یک نسخه کاملاً جدید از شی را ذخیره میکنند.
عملیات CRUD و RESTful API
مخفف CRUD نیز در بحث RESTful API ها ظاهر می شود. هر حرف در CRUD به یک روش پروتکل انتقال ابرمتن (HTTP) نگاشت می شود:
HTTP | CRUD |
---|---|
Post | Create |
GET | Read |
PUT | Update |
DELETE | Delete |
در HTTP، روشهای GET (خواندن)، PUT (ایجاد و بروزرسانی) و DELETE (حذف) عملیات CRUD هستند زیرا معنای مدیریت ذخیرهسازی دارند، به این معنی که به عامل کاربر اجازه میدهند مستقیماً حالات منابع هدف را دستکاری کنند. از طرف دیگر، روش POST یک عملیات فرآیندی است که دارای مفاهیم target-resource-specific است که معمولاً از محدوده عملیات CRUD فراتر می رود.
کاربرد کلاس ControllerBase در ایجاد web API در Asp Core
کنترلرهای Web API در Asp Core معمولاً باید از کلاس ControllerBase مشتق شوند و نه از کلاس Controller. کنترلری که از ControllerBase مشتق شده باشد از view ها پشتیبانی می کند، بنابراین برای مدیریت صفحات وب است نه درخواست های Web API. اگر کنترلری باید از view ها و API های وب پشتیبانی کند، باید از کلاس Controller مشتق شود.
کلاس ControllerBase ویژگی ها و متدهای زیادی را ارائه می دهد که برای مدیریت درخواست های HTTP مفید هستند.به عنوان مثال،متد CreatedAtAction یک کد وضعیت 201 را بر می گرداند، سایر این متدها به شرح زیر است:
کاربرد اتربیوت ApiController در ایجاد Web API در Asp Core
اتربیوت [ApiController] را میتوان بر روی یک کنترلر اعمال کرد تا رفتارهای خاص مبتنی بر API زیر را فعال کند:
- Attribute routing requirement
- Automatic HTTP 400 responses
- Binding source parameter inference
- Multipart/form-data request inference
- Problem details for error status codes
ارسال درخواست به Web API در Asp Core با ابزار Postman
Postman یک پلت فرم API برای توسعه دهندگان برای طراحی، ساخت، آزمایش و تکرار API های خود است. از آوریل 2022، Postman گزارش می دهد که بیش از 20 میلیون کاربر ثبت شده و 75000 API باز دارد و بزرگترین هاب API عمومی جهان را تشکیل می دهد.
ما در این آموزش برای ارسال درخواست به Web API در Asp Core از ابزار Postman استفاده خواهیم کرد و سیستم Restful API در Asp Core را تست خواهیم کرد.
برای آموزش پیشرفته Web API در Asp.net Core می توانید دوره آموزش Web API در Asp.net Core 7 را تهیه نمایید.
سرفصل های دوره آموزش Restful Api و عملیات CRUD در Asp Core
- ایجاد دیتابیس با روش کد فرست در Asp Core
- پیکربندی و تنظیم جداول با استفاده از روش Fluent Api در Asp Core
- ایجاد Restful Api و پیاده سازی عملیات CRUD در Asp core
- ایجاد سرویس های مورد نیاز جهت ارتباط با دیتابیس
- ارسال درخواست به Restful Api با ابزار Postman و مشاهده نتایج در Asp core
پیش نیازهای دوره آموزش RESTful API و انجام عملیات CRUD در Asp Core 6
برای شروع دوره آموزش RESTful API و عملیات CRUD در Asp Core 6 ابتدا نیاز است که دوره های آموزش ایجاد دیتابیس با روش کد فرست در Asp Core 6 و استفاده Fluent Api در Asp Core 6 را دنبال نمایید.
نتیجه گیری
خدمات RESTful در مقایسه با خدمات SOAP بسیار سریعتر هستند و پهنای باند بسیار کمتری مصرف می کنند. ASP.NET Core ساخت سرویس های RESTful را آسان و راحت می کند. در این آموزش به بررسی نحوه ایجاد یک سرویس ساده RESTful با استفاده از ASP Core پرداخته ایم.
دریافت سورس پروژه آموزش RESTful API و انجام عملیات CRUD در Asp Core 6
برای ثبت نظر باید در سایت ثبت نام یا ورود نمایید