Hootan Alghaspour
Hootan Alghaspour
خواندن ۴ دقیقه·۴ سال پیش

هفت فعل طلایی در RESTful Routes

خود (Representational state transfer (REST یک روش در طراحی و پیاده سازی نرم افزار، عمدتاً برای طراحی وب سرویس ها است که برای تعامل استاندارد بین سیستم ها یا سرور/کلاینت بر روی بستر وب با استفاده از متدهای HTTP طراحی شده و براساس این استایل، فرامین و قوانین مشخصی برای ارتباط با یک سرور ارائه دهنده RESTful API وجود دارند که با استفاده از آن ها می توانیم اطلاعاتی را بسازیم/بخوانیم/تغییر دهیم/حذف کنیم.

یعنی خلاصه تکلیف مشخص است که هر آدرس URI به چه آدرس Route و کنترلری در نرم افزار وصل شده.

مثلاً می خواهید یک آیتم از رکوردهای سامانه RESTful را ویرایش کنید URI آدرس آن Collection/Item:id/ و HTTP Methodی که باید اطلاعات جدید را ارسال کنید PUT/PATCH و فعلی که انجام خواهد شد update آن رکورد با اطلاعات جدید است.

همین آدرس Collection/Item:id/ اگر HTTP Method آن GET باشد اطلاعات آن آیتم را نمایش می دهد و فعل آن show است.

اگر Collection/Item:id/edit/ با متد GET باشد، فرم ویرایش آن آیتم را نمایش خواهد داد.

به عملیات Create/Read/Update/Delete اصطلاحاً CRUD می گوییم و کار RESTful route (که در حقیقت یک پترن است) ، اتصال CRUD به URIها و آدرس های استاندارد است که بتوان از طریق وب و HTTP Methodها به آن دسترسی داشت.

یک RESTful route پترن تعریف شده ای است که وظیفه دریافت درخواست (که با متد و آدرس مشخصی ارسال شده) و تصمیم گیری برای اینکه این درخواست به چه تابع و کنترلری باید ارسال شود را برعهده دارد.

حالا اگر شما در توسعه نرم افزار خود از این 7 متد استاندارد مورد توافق استفاده کرده باشید، برنامه نویس بعدی که پای همین سامانه بنشیند یا بخواهد از سامانه دیگری با آن تعامل کند تکلیفش مشخص است که چه چیز را کجا باید پیدا کند و سرنخ هر عملیات و روال کجاست.

خلاصه اینکه :

  • آدرس URI = مجموعه/ و اگر متد GET باشد => تابع = index و Route=index => نتیجه = نمایش همه رکوردها
  • آدرس URI = مجموعه/new و اگر متد GET باشد => تابع = New(انتقال به فرم افزودن آیتم جدید) و Route=New => نتیجه = نمایش فرم اضافه کردن یک رکورد به مجموعه
  • آدرس URI = مجموعه/ و اگر متد POST باشد => تابع = Create و Route=Create => نتیجه = اضافه کردن یک رکورد به مجموعه
  • آدرس URI = مجموعه/آیتمid و اگر متد GET باشد => تابع = Show و Route=Show => نتیجه = دیدن همان رکورد مشخص از مجموعه
  • آدرس URI = مجموعه/edit و اگر متد GET باشد => تابع = Edit(انتقال به فرم ویرایش آیتم) و Route=Edit => نتیجه = نمایش فرم ویرایش آیتم
  • آدرس URI = مجموعه/آیتمid و اگر متد PUT/PATCH باشد => تابع = Update و Route=Update => نتیجه = بروزرسانی اطلاعات همان رکورد
  • آدرس URI = مجموعه/آیتمid و اگر متد DELETE باشد => تابع = Delete و Route=Delete => نتیجه = حذف همان رکورد مشخص

با این 7 پترن و امکاناتی که هر فریم ورک برنامه نویسی برای مدیریت اون ها فراهم می کنه می شه تمام عملیات CRUD روی یک مجموعه حاوی رکوردهای اطلاعاتی مثل انواع جداول دیتابیس را انجام داد و با مشخص بودن URI و آدرس و عملیات، امکان اعتبارسنجی مشخص و دقیق هم در سطح تجهیزات شبکه هم وب سرور و هم اپلیکیشن هست.

منبع تصویر بالا و پایین اینجا هست.

البته در واقعیت در توسعه بسیاری از سیستم ها پترن RESTful route یا تقریباً مشابه اون رعایت شده، اما کلیه عملیات CRUD با همان GET,POST جمع شده و دیگر از متدهای DELETE,PUT,PATCH استفاده نشده است.

restfulوب سرویسوبلاراولبرنامه نویسی
هوتن القاس پور
شاید از این پست‌ها خوشتان بیاید