وب سرویس REST - Restful
REST چیست؟
REST يك مدل معماري براي طراحي برنامههاي كاربردي شبكه است كه ترکیبی از چند مدل معماری مبتنی بر شبکه ميباشد و محدودیتهايی جهت تعریف يك واسط اتصال یکنواخت براي آن درنظر گرفته شده است.
REST مخفف شدهی عبارت Representational State Transfer و به معنای "انتقال بازنمودی حالت" است.
ايده اصلي معماري REST اين است كه به جاي استفاده از مكانيزم هاي پيچيده اي مانند CORBA، RPC يا SOAP براي اتصال ماشين ها ، ازHTTP ساده براي برقراري ارتباط بين ماشينها استفاده شود.
مدل REST شش قيد براي معماری برنامههاي شبكه تعريف ميكند: كلاينت سرور (client-server) باشد. بدون حالت (stateless) باشد. قابليت cache داشته باشد. (cacheable) سيستم لايهبندي شده (layered system) داشته باشد. واسط يكنواخت (uniform interface) داشته باشد. داراي قابليت كد در صورت نياز (code on demand) باشد. (كه اين محدوديت اختياري ميباشد) به سيستمي كه اين قيود را رعايت نمايد، RESTful ميگويند.
از لحاظ رويكرد برنامه نويسي REST جايگزيني ساده براي سرويسهاي وب است. توسعهپذيري در تعاملات ميان اجزا، عموميت واسط ها، توسعه مستقل اجزا و استفاده از واسطه ها از كليدي ترين اهداف معماري REST ميباشد و همچنين استفاده از معماري REST در برنامهنويسي كارايي، سادگي، انعطافپذيري، امكان مشاهده و نظارت، قابليت حمل و قابليت اطمينان را افزايش مي دهد.
در حقیقت انعطاف بالا و سادی RESTFUL باعث شده که جایگزین وب سرویس ها SOAP که بر مبنای XML بودند شود.
امروزه برنامه های سنتی وب در حال حرکت به سمت سرویسی شدن هستند، بدین صورت که کلاینت ها تنها از طریق وب سرویس هایی با سرور در تماس هستند.
به بیانی دیگر ارتباط کلاینت ها با لایه داده برنامه (Data Model) از طریق وب سرویس ها صورت می پذیرد. در چنین برنامه هایی منطق برنامه (logic) کاملا در سمت کلاینت پیاده سازی می شود و سرور دیگر هیچ نقشی جز فراهم کردن داده برای کلاینت هایش را برعهده ندارد. یکی از الگو های طراحی وب سرویس که در سال های اخیر بسیار مورد توجه قرار گرفته است سرویس های REST می باشند.
در سرویس های REST فراهم کردن منابع برای کلاینت ها بسیار مهم است. در واقع تمام هدف REST اینست که این منابع را بگونه ای در اختیار کلاینت ها قرار دهد تا از آنها استفاده کنند، تغییراتی در آنها دهند و یا آنها را حذف کنند.
یکی از نکات مثبت سروریس های REST این است که دسترسی کلاینت ها به این منابع از طریق درخواست های HTTP انجام می گیرد. این درخواست ها با متد های مختلفی می توانند ارسال شوند که هر یک معنا و مفهومی خاصی دارد. این متد ها عبارتند از GET، POST ، PUT، DELETE و ... که کاربرد هریک با دیگری متفاوت است.
متد های REST:
- متد GET بمنظور بازیابی و خواندن منبع استفاده می شود.
- متد POST زمانی استفاده می شود که بخواهیم منبع جدیدی را ایجاد کنیم.
- متدهای PUT و PATCH برای دستکاری در یک منبع مورد استفاده قرار می گیرند.
- متد DELETE نیز بمنظور حذف یک منبع مورد استفاده قرار می گیرد.
کافیست با یک تماس از تمامی این امکانات بهره مند شوید.