آشنایی با قابلیت های Restful در برنامه نویسی

یکی از الگو های طراحی وب­ سرویس که در سال­های اخیر بسیار مورد توجه قرار گرفته است REST می باشند. REST برخلاف SOAP یک پروتکل مشخص و یا یک نوع معماری نیست بلکه یک نوع سبک معماری برای ایجاد برنامه ­های کاربردی تحت شبکه است که در سال ۲۰۰۰ توسط یکی از مولفان اصلی پروتکلHTTP   به نام Roy Feilding  در پایان‌نامه‌ی دکترایش معرفی شد. وب‌سرویس‌هایی که مطابق با این سبک معماری طراحی می‌شوند اصطلاحاً RESTful  می­ نامند. ایده اصلی سبک معماری REST این است که به جای استفاده از مکانیزم­های پیچیده­ مانند CORBA،RPC  یاSOAP ، از HTTP ساده برای برقراری ارتباط بین ماشین‌ها استفاده کنیم.

همانطور که در شکل زیر مشاهده می­شود، در سیستم­های مبتنی بر REST همه چیز به صورت یکسری منابع دیده می­شوند که هر منبع با URI مشخص می­گردد. در واقع برخلاف RPC که بر عملیات و برخلاف SOAP که بر پیام تمرکز دارند، REST بر منابع تمرکز دارد. برنامه­ های کاربردی Restful از درخواست­های HTTP برای ارسال داده (ایجاد یا بروزرسانی)، خواندن داده و حذف داده استفاده می­کنند. به عبارت دیگر REST از HTTP برای هر چهار عمل CRUD (Create/Read/Update/Delete) استفاده می­کند.

سبک معماری REST بر پایه چهار اصل زیر استوار است:

  • شناسایی منبع از طریق URI : منابع از طریق URI شناسایی می­شوند که از این طریق یک مکانیزم کشف سرویس فراهم می­شود.
  • واسط یکسان : فقط چهار عمل create، read،update و delete مسئول دستکاری منابع هستند.
  • پیام­های خود-توصیف: محتوای منابع می­تواند در چندین قالب نمایش داده شود (مثلا قالب­های HTML، XML، Plain text، PDF یا JPEG). از ابرداده منبع می­توان برای تشخیص خطاهای انتقال، انجام تصدیق اصالت یا کنترل دسترسی استفاده کرد.
  • تعاملات دارای وضعیت از طریق ابرلینک­ها: تعاملات stateful را می­توان با استفاده از چند فناوری انجام داد، مثلا بازنویسی URL، کوکی­ها یا فیلدهای پنهان فرم.