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

12 تیر 1405 - خواندن 5 دقیقه - 21 بازدید

«نسخه کامل و جامع این مقاله به همراه جزئیات بیشتر، در imaniNova.ir منتشر شده است. در ادامه قطعه ای از این مقاله را مشاهده می کنید.»

وب سرویس یک قطعه کد یا مکانیزم ارتباطی استاندارد بر پایه شبکه (اغلب اینترنت) است که به دو پلتفرم یا اپلیکیشن مختلف اجازه می دهد بدون توجه به زبان برنامه نویسی (سی شارپ، پایتون، جاوا و...) یا سیستم عاملشان (ویندوز، لینوکس)، با یکدیگر تبادل داده داشته باشند

انواع وب سرویس  ۱. وب سرویس SOAP

پروتکل SOAP مخفف Simple Object Access Protocol است. کلمه کلیدی برای درک SOAP، «پروتکل» بودن آن است. یعنی برخلاف REST، یک سبک یا سلیقه نیست؛ بلکه یک استاندارد رسمی و فوق العاده سخت گیرانه است که توسط سازمان W3C ثبت شده و همه باید مو به مو قوانینش را رعایت کنند.

  • دیتا چطور منتقل می شود؟ SOAP فقط و فقط فرمت XML را می فهمد. کدهای XML ساختاری درختی، همراه با تگ های باز و بسته زیاد دارند که حجم دیتا را سنگین می کند.
  • پاکت نامه SOAP (SOAP Envelope): هر درخواستی که در SOAP فرستاده می شود، باید داخل یک پاکت نامه مجازی قرار بگیرد. این پاکت شامل یک Header (برای اطلاعات امنیتی و احراز هویت) و یک Body (اصل پیام یا همان دیتای اصلی) است.
  • قرارداد WSDL چیست؟ SOAP یک فایل به نام WSDL (Web Services Description Language) دارد. این فایل مثل یک قرارداد حقوقی و محکم میان سرور و کلاینت است. در این فایل دقیقا نوشته شده که این وب سرویس چه متدهایی دارد، ورودی ها باید چه جنسی باشند (مثلا عدد است یا متن) و خروجی چه خواهد بود. اگر کلاینت حتی یک ویرگول را اشتباه بفرستد، وب سرویس اصلا درخواست را پردازش نمی کند.
مثال : درگاه های بانکی قدیمی یا سیستم پایا و ساتنا بانک مرکزی. وقتی می خواهید به بانک متصل شوید، بانک به شما یک فایل با پسوند .wsdl می دهد. شما این فایل را وارد پروژه خود (مثلا در .NET) می کنید و پروژه شما دقیقا می فهمد چطور باید با بانک گفتگو کند. امنیت در اینجا با استانداردهای سنگینی مثل WS-Security تامین می شود تا هکرها نتوانند بین راه دیتا را دستکاری کنند.
۲. معماری REST

معماری REST مخفف Representational State Transfer است. کلمه کلیدی در اینجا «معماری» است. یعنی ساختار REST مثل SOAP قانون و پروتکل دیکته شده ندارد؛ بلکه یک سری اصول و راهنماست که به برنامه نویس آزادی عمل زیادی می دهد.

  • دیتا چطور منتقل می شود؟ REST می تواند متن ساده، XML، HTML یا محبوب ترین فرمت دنیا یعنی JSON را جابه جا کند. JSON به شدت سبک است، تگ های اضافه ندارد و ساختاری شبیه به آرایه ها و آبجکت های برنامه نویسی دارد که خواندنش برای کامپیوتر و انسان بسیار سریع است.
  • استفاده از اصول خود وب (HTTP): در REST ما پروتکل جدیدی نمی سازیم؛ بلکه از همان امکانات پیش فرض مرورگرها و وب استفاده می کنیم. برای کارهای مختلف، از متدهای استاندارد HTTP استفاده می شود:
    GET: برای خواندن اطلاعات (مثلا گرفتن لیست محصولات).
    POST: برای ایجاد یک دیتای جدید (مثلا ثبت نام کاربر جدید).
    PUT: برای آپدیت کامل یک دیتا (مثلا ویرایش پروفایل).
    DELETE: برای حذف یک دیتا.
  • بدون وضعیت (Stateless): سرور در معماری REST هیچ اطلاعاتی از گذشته ی کلاینت ذخیره نمی کند. هر ریکوئستی که فرستاده می شود باید تمام اطلاعات لازم برای پردازش (مثل توکن امنیتی) را همراه خودش داشته باشد.
مثال : پنل های پیامکی (مثل کاوه نگار). شما یک درخواست به آدرس [api.kavenegar.com/v1/send.json](https://api.kavenegar.com/v1/send.json) می فرستید، متد را روی POST می گذارید، شماره و متن پیامک را در یک قالب کوچک JSON ارسال می کنید و پیامک صادر می شود. به همین سادگی و سرعت.
فناوری GraphQL

فناوری GraphQL توسط فیس بوک ساخته شد تا مشکل بزرگ REST یعنی ارسال داده های اضافه یا ناقص را حل کند. در REST آدرس ها (Endpointها) ثابت هستند. مثلا اگر به آدرس /users/1 درخواست بزنید، سرور تمام دیتای کاربر شماره ۱ شامل نام، ایمیل، شماره تلفن، آدرس، تاریخ تولد، بیوگرافی و لیست دوستان را برای شما می فرستد.


ادامه مقاله در
https://imaninova.ir/ArticleView?what-is-web-service-types