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

یکی از الگو های طراحی وب­ سرویس که در سال­های اخیر بسیار مورد توجه قرار گرفته است [1]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) استفاده می­کند.

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

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

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

شکل زیر، دو فناوری وب سرویس WS-* و RESful را در مقایسه با یکدیگر نشان می­دهد. برای جزئیات بیشتر در مورد مقایسه این دو فناوری و تصمیم ­گیری بهتر در انتخاب این دو، به مقاله(Pautasso-2009)  مراجعه نمایید.

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

مقایسه فناوری وب سرویس WS-*  با RESful  (Pautasso-2009)


نظرات