ایمیل
admin [at] VaniaIT.Com
امور مشتریان
پرتال کاربران - CRM
تلفن
9122830795(98+)
طراحی وب سایت

آموزش ساخت و بکارگیری یک وب سرویس - بخش چهارم


  • وب سرویس REST

در مقابل سرویس های وب SOAP، مدل REST وب سرویس از یک شماتیک هدایتی برای ارائه اشیاء تجاری و منابع یک شبکه استفاده می کند. به عنوان مثال یک سازمانی مانند وانیا ممکن است با استفاده از چنین شماتیکی، دسترسی به اطلاعات کارمندان و ارائه جزئیات هر کارمند به صورت یک منبع مجزا ارائه دهد

http://www.vaniait.com/employers/7

دسترسی به این URL موجب می شود تا وب سرویس، داده های کارمند 7 را بازیابی کند. این داده ها ممکن است به صورت چندین فرمت برگردانده شوند اما برای قابلیت انتقال، متداول ترین فرمت ها شامل XML ( یا POX ) و JSON ( یا JavaScript Object Notation ) می باشند. در صورتیکه وانیا بخواهد از POX استفاده کند نتیجه بازگشتی از پرس و جوی URL ممکن است به صورت زیر باشد:


<Employer>
<EmployerID>7</EmployerID>
    <LastName>Pourmohammad</LastName>
    <FirstName>Morteza</FirstName>
    <Title>WebDeveloper</Title>
<Employer>

 

کلید اصلی طراحی یک راه حل مبتنی بر REST، درک چگونگی تقسیم یک مدل تجاری به مجموعه ای از منابع می باشد. در برخی موارد مثل کارمندان ، این ممکن است واضح و روشن باشد اما در برخی از حالاتممکن است با یکسری چالش ها روبرو شود.

REST فقط یک سری از دستور العمل ها و سبک های معماری است که برای انتقال داده ها استفاده می شوند. این عموما در مورد اپلیکیشن های تحت وب کاربرد دارد ولی می تواند داده ها را به سایر برنامه ها نیز ارسال کند.

کلمه API نیز مخفف Application Programming Interface می باشد که به روش های اتصال به سایر کتابخانه ها و برنامه ها اطلاق می شود. ویندوز API های مختلفی دارد ، تویتتر نیز یک API وب دارد که البته کارهای مختلفی را با هدف های متفاوت از هم انجام می دهند.

مدل REST مبتنی بر برنامه ای است که به داده های ارسال کننده HTTP به عنوان بخشی از درخواست مورد استفاده در دسترسی داده ها دسترسی دارد. به عنوان مثال درخواست ساده ای که پیشتر نشان داده شد، یک درخواست HTTP GET به سرویس وب ارسال می کند. HTTP دیگر افعال مثل POST،  PUT و DELETE را نیز پشتیبانی می کند که با استفاده از آنها می توانید منابع را بسازید، تغییر دهید و حذف کنید. با استفاده از مدل REST می توانید از این اعمال استفاده نموده و سرویس های وبی را برای بروزرسانی داده ها بسازید. 

REST یک وب سرویس نیست. پروتکل هم نیست.
REST یک روش معماریه. یکسری اصول کلی.

در مقابل SOAP ، پیغام های ارسالی و دریافتی با استفاده از مدل REST بیشتر تمایل دارند تا فشرده شوند. دلیل آن این است که REST مسیردهی، خط مشی و یا قابلیت های امنیتی ارائه شده توسط مشخصه های WS-* را عرضه نمی کند. شما بایستی برای مخافظت سرویس های وب ، به زیر ساخت های ارائه شده توسط سرویس دهنده بسنده کنید. اگرچه این دیدگاه بدین معناست که در زمان ارسال و دریافت پیغام ها، سرویس وب REST معمولاً مناسب تر از وب سرویس معادل SOAP است 

REST یک متدولوژی یا روش شناسی سبُک است که آن را برای انتقال داده های HTTP مناسب می کند. این همان علتی است که REST را در وب اینقدر محبوب کرده است و اینقدر از طرف عموم به عنوان بهترین روش پیاده سازی API شناخته می شود.

 

معماری REST لازم است شرایط زیر را داشته باشند:

  • کلاینت سرور (client-server) باشد.
  • بدون حالت (stateless) باشد.
  • قابلیت cache داشته باشد.
  • سیستم لایه‌بندی شده  داشته باشد.
  • واسط یکنواخت  داشته باشد.
  • دارای قابلیت کد در صورت نیاز  باشد

از لحاظ رویکرد برنامه نویسی REST جایگزینی ساده برای سرویس‌های وب است. توسعه‌پذیری در تعاملات میان اجزا، عمومیت واسط ها، توسعه مستقل اجزا و استفاده از واسطه ها  از کلیدی ترین اهداف معماری REST می‌باشد و همچنین استفاده از معماری REST در برنامه‌نویسی کارایی، سادگی، انعطاف‌پذیری، امکان مشاهده و نظارت، قابلیت حمل و قابلیت اطمینان را افزایش می دهد.

 

REST یک متدولوژی یا روش شناسی سبُک است که آن را برای انتقال داده های HTTP مناسب می کند. این همان علتی است که REST را در وب اینقدر محبوب کرده است و اینقدر از طرف عموم به عنوان بهترین روش پیاده سازی API شناخته می شود.

نکاتی مهم برای RESTful API ها

API User یک توسعه دهنده وب است که می تواند برنامه هایی برای اتصال به سرور خارجی API بنویسد و اطلاعات ضروری روی HTTP به او برگشت داده شوند. توسعه دهنده وب سپس می تواند اطلاعات را در سایت خود نمایش دهد بدون دسترسی شخصی به سرور خارجی API.

همانطور که در پاراگراف های بالاتر هم اشاره شد در کل از چهار دستور برای دسترسی به RESTful API  استفاده می شود :

  • GET برای گرفتن یک شی
  • POST برای ایجاد یک شی
  • PUT برای ویرایش یا بازنویسی یک شی
  • DELETE برای حذف یک شی

با هر بار فراخوانی API ،یکی از این متد ها باید به سرور پاس داده شود تا سرور بداند چطور باید رفتار کند.

اکثریت قریب به اتفاق وب API ها فقط درخواست های GET را اجازه می دهند تا بتوان داده ها را از سرور دریافت کرد. احراز هویت کاربر اختیاری است ولی شدیدا ایده خوبی است وقتی که پای متد های حساس و دارای قابلیت خرابکاری مثل PUT و DELETE درمیان باشد.

اگر بخواهیم جمع بندی کنیم ، RESTful API ها در واقع API هایی هستند که از معماری REST تبعیت می کنند

.