وب سرویس چیست؟

مفهوم وب سرویس

روزانه تعداد بسیار زیادی نرم افزار در سراسر دنیا با یکدیگر به تبادل اطلاعات میپردازند، بدیهی است که تمامی این نرم افزارها از یک تکنولوژی تکراری ساخته نشده اند. زبانهای برنامه نویسی متفاوت، پلتفرم های متفاوت و ... چگونه میتوانند حرف یک دیگر را بفهمند؟ وب سرویس را میتوان ابزاری برای ارتباط میان سامانه های نرم افزاری متفاوت دانست. اما این ابزار چگونه فعالیت میکند؟ وب سرویس ها از استانداردهای مشخصی تشکیل شده اند که این استاندارد برای تمامی زبانها و تکنولوژی های توسعه نرم افزار تعریف شده و سازگار است. در واقع وب سرویس ها روش های مشخصی را برای تبادل دیتا استفاده نموده و از این طریق خدمات یک سامانه را در اختیار متقاضی دریافت خدمات قرار میدهند.

فرض کنید شرکت اتوبوسرانی قصد دارد اطلاعات اتوبوسهای خود را به شرکت های واسط جهت فروش بلیت به کاربران ارائه کند. این عملیات به روش سنتی و غیر مکانیزه در جهان امروزی کارآمد نیست. پس راه حل چیست؟ در این مسئله سیستم نرم افزاری اتوبوسرانی و شرکت واسط باید بتوانند بدون دخالت انسان با یکدیگر ارتباط برقرار کنند و ابزار این ارتباط میتواند وب سرویس باشد. بنابراین شرکت اتوبوسرانی وب سرویسی را با اسناد راهنما در اختیار شرکت واسط قرار داده و این شرکت در سامانه نرم افزاری خود وب سرویس را پیاده سازی میکند. بنابراین نرم افزار شرکت واسط در هنگام مراجعه کاربر، وب سرویس شرکت اتوبوسرانی را فراخوانی نموده و در این هنگام نرم افزار اتوبوسرانی بر اساس درخواست ارسال شده اطلاعات لازم را در جواب به شرکت واسط ارسال میکند. از این طریق دو سامانه میتوانند به تبادل اطلاعات بپردازند

مثال های فراوانی از این گونه سرویس ها در جهان در حال استفاده است. وب سرویس ها میتوانند ارتباط میان سامانه های نرم افزاری دو سازمان مختلف و یا حتی ارتباط میان عناصر نرم افزاری داخل یک سازمان را برقرار سازند. به طور مثال ارتباط میان نرم افزار اندروید و نرم افزار dnE-kcaB در یک سامانه از طریق وب سرویس ها انجام میشود. چرا که نرم افزار اندروید با زبانی مانند avaJ توسعه یافته و زبان میتواند #C و یا ... باشد. در این پست به صورت غیر تخصصی به توضیح وب سرویس پرداختیم. اطلاعات فنی و تخصصی تر در مود نحوه عملکرد وب سرویس ها را در پست های آتی معرفی خواهیم نمود. با ما همراه باشید.

اجزای یک درخواست به وب سرویس

یک در خواست به وب سرویس شامل چه اجزایی است؟
  • ✼ آدرس وب سرویس :
  • هر وب سرویس دارای آدرس اینترنتی مشخصی است، و از طریق این آدرس، یک درخواست به وب سرویس ارسال میشود.
  • ✼ نوع وب سرویس :
  • هر وب سرویس یکی از انواع GET،POST،PUT،DELETE،PATCH میبباشد. و بر اساس نوع خود رفتار مشخصی دارد. در هنگام ارسال درخواست به وب سرویس باید نوع منطبق با ساختار سرویس انتخاب شود.
  • ✼ ورودی وب سرویس :
  • هر وب سرویس تعدادی داده از درخواست دهنده دریافت میکند تا بر اساس انها عملیات خود را انجام دهد. بر حسب نوع سرویس این داده باید در URL یا BODY درخواست قرار گیرد.
  • ✼ Header درخواست :
  • معمولا داده هایی که وابستگی به یک سرویس در یک سامانه ندارند و جنبه عمومی تری دارند، از طریق هدر درخواست ارسال میشود. به طور مثال توکن احراز هویت کاربر از این نوع داده ها میباشد.
  • ✼ پاسخ درخواست :
  • وب سرویس در پاسخ درخواست دریافت شده، میتواند داده مشخصی را به درخواست دهنده بازگرداند. این داده فیلدهای مشخص و قراردادی دارد.
  • ✼ Header و کد وضعیت پاسخ درخواست :
  • وب سرویس علاوه بر داده هایی که در پاسخ به درخواست دهنده میدهد، اطلاعاتی را نیز در هدر پاسخ به همراه کد وضعیت که نشانه نتیجه عملیات است، به درخواست دهنده ارسال میکند.

انواع سرویس های RESTful

  • ✼ Post
  • وظایف: ایجاد اطلاعات جدید بر اساس داده های ورودی. نحوه دریافت ورودی : از طریق body در request
  • ✼ Get
  • وظایف: واکشی اطلاعات بر اساس داده های ورودی و ارسال به کلاینت. نحوه دریافت ورودی: از طریق query param در Url
  • ✼ DELETE
  • وظایف: حذف اطلاعات بر اساس داده های ورودی. نحوه ی دریافت ورودی: از طریق query param در Url
  • ✼ PUT
  • وظایف: به روز رسانی اطلاعات بر اساس داده های ورودی. نحوه ی دریافت ورودی : ترکیب query param و request body

نظر خود را بنویسید.