REST مخفف Representational State Transfer میباشد یک معماری وب سرویس است که از HTTP برای انتقال اطلاعات میان کلاینت و سرور استفاده میکند کار کردن با REST بسیار ساده تر از وب سرویس های پیچیده ای مانند SOAP میباشد.
REST چست؟
توسعه دهندگان وب به صورت مکرر در مورد اصول REST و ساختار داده RESTful صحبت می کنند زیرا یکی از جنبه های حیاتی توسعه وب مدرن است ولی بعضی اوقات این کار فوق العاده گیج کننده می شود. REST به خودی خود یک تکنولوژی نیست ولی می توان گفت روشی است برای ایجاد API هایی با اصول سازماندهی مشخصی که راهنمای توسعه دهندگان هستند تا بتوانند محیطی یکسان و جهانی برای پردازش درخواست های API ایجاد کنند.
معماری REST لازم است شرایط زیر را داشته باشند:
- کلاینت سرور(client-server) باشد.
- بدون حالت(stateless) باشد.
- قابلیتcache داشته باشد.
- سیستم لایهبندی شده داشته باشد.
- واسط یکنواخت داشته باشد.
- دارای قابلیت کد در صورت نیاز باشد.
از لحاظ رویکرد برنامه نویسی، REST جایگزینی ساده برای SOAP در سرویسهای وب است. توسعهپذیری در تعاملات میان اجزا، عمومیت واسط ها، توسعه مستقل اجزا و استفاده از واسطه ها از کلیدی ترین اهداف معماری REST میباشد و همچنین استفاده از معماری REST در برنامهنویسی کارایی، سادگی، انعطافپذیری، امکان مشاهده و نظارت، قابلیت حمل و قابلیت اطمینان را افزایش می دهد.
ویژگی های REST
یک وب سرویس REST دارای مشخصات زیر است :
- بوسیله URI کار میکند یعنی منابع و کالکشن های خود را به صورت http://example.com/resources دریافت میکند.
- اطلاعات را به صورت عموما JSON دریافت میکند البته میتواند اطلاعات به صورت XML هم برگردانده شود.
- برخلاف وب سرویس های برپایه SOAP هیچ استاندارد رسمی برای وب سرویس های REST وجود ندارد به دلیل اینکهREST یک معماری است در حالی که SOAP یک پروتکل وب سرویس است.
اینجا نگاهی فنی تر به REST خواهیم داشت . ما یک سری ثابت های معماری در REST داریم ، مثل :
- ثبات(Consistency) در کل ساختار API
- موجودیت مستقل(Stateless existence) . مثلا عدم وابستگی به session های سمت سرور
- استفاده ازکدهای وضعیت HTTP در جای مناسب
- استفاده ازنقاط پایانی URL با سلسله مراتب منطقی
- نسخه بندی(Versioning) در URL به جای درخواست HTTP
دیگر هیچ دستور العملی برای جزئیات بیش از حد مثل جزئیات HTML5 در W3C وجود ندارد که می تواند منجر به سردرگمی شود و بخاری بدبو از عدم قطعیت را در اطراف اصطلاح REST پدید آورد.
REST یک متدولوژی یا روش شناسی سبُک است که آن را برای انتقال داده های HTTP مناسب می کند. این همان علتی است که REST را در وب اینقدر محبوب کرده است و اینقدر از طرف عموم به عنوان بهترین روش پیاده سازی API شناخته می شود.