حسین احمدی
بنیانگذار توسینسو و برنامه نویس و توسعه دهنده ارشد وب

تفاوت وب سرویس و API در چیست؟ به زبان ساده

Web Service چیست؟ API چیست؟ تفاوت وب سرویس و ای پی آی دی چیست؟ فرقی نمی کنه که کار برنامه نویسی کنید یا به طریقی با دنیای وب سرو کار داشته باشید. حتماً این دو اصطلاح رو شنیدید: Web Service و Api. دو واژه ای که خیلی زیاد مورد استفاده قرار میگیرن و خلی وقت ها با هم اشتباه گرفته میشن. در این مقاله قصد داریم با این دو اصطلاح آشنا شده و تفاوت هاشون رو بررسی کنیم.

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

تعریف API

کلمه API مخفف عبارت Application Programming Interface است. اگر ما به این سه لغت دقت کنیم می تونیم به راحتی معنی API رو متوجه بشیم. به طور کلی یک API رابطی هست که به سایر نرم افزارها اجازه میده با یک نرم افزار ارتباط برقرار کنن و تعامل داشته باشن. معمولاً API ها شامل یکسری توابع و روال ها هستند که به ما اجازه دسترسی به اطلاعات و امکانات یک نرم افزار رو میدن.شاید این سوال برای شما پیش بیاد که از چه زمانی API ها مورد استفاده قرار گرفتن. میشه گفت تقریباً از زمانی که اولین برنامه کامپیوتری ایجاد شد، توسعه دهنده ها به این فکر افتادن که بتونن به راحتی ارتباط بین نرم افزار ها برقرار کنن و از امکانات موجود یک نرم افزار استفاده کنن و اینگونه بود که API متولد شد.اما امروزه واژه API بیشتر اشاره به Web API داره که امکان دسترسی به اطلاعات، داده ها و امکانات یک Application رو بر روی اینترنت به ما میده. به عنوان مثال به موارد زیر دقت کنید:

  1. لاگین کردن به وب سایت های مختلف با حساب های گوگل یا فیسبوک
  2. امکان طراحی Plugin برای وب سایت هایی مانند فیسبوک
  3. استفاده از قابلیت جستجوی گوگل در وب سایت شخصیتون
  4. نمایش نقشه گوگل در وب سایت ها

تمام مواردی که در بالا بهش اشاره شد بوسیله API هایی که توسط سایت های مورد اشاره ارائه شده امکان پذیر هست. اگر بخواییم دیدگاه تخصصی تر به موضوع داشته باشیم، میتونیم بگیم که یک API، امکان ارسال و دریافت درخواست های HTTP رو فراهم می کنه و پاسخ (Response) درخواست ها مبتنی بر Json یا XML برای ما ارسال میشه. دلیل استفاده از Json یا XML این هست که این فرمت ها به صورت استاندارد و بر روی پلتفرم های مختلف قابل استفاده هستند.

تعریف Web Service

حالا که با مفهوم API و Web API آشنا شدیم، به سراغ Web Service میرویم. به طور خیلی ساده اینطور میتونیم بگیم که یک Web Service در حقیقت منابع یا Resource هایی هستند که در محیط اینترنت در دسترس قرار میگیرن. پس اولین شرط یک Web Service این هست که شما حتماً باید یک شبکه از کامپیوتر های متصل به هم داشته باشید (بر خلاف API که ملزم به استفاده از شبکه نیستید و یک نرم افزار نصب شده بر روی سیستم شما هم می تونه یکسری API رو در اختیار شما قرار بده).در وب سرویس ها ما با ابتدا با دو مفهوم برخورد می کنیم:

  1. واژه WSDL یا Web Service Definition Language: فرمت یا قالبی مبتنی بر XML که رابط یا Interface یک Web Service رو تعریف می کنه که این وب سرویس شامل چه توابع، چه پارامترهای ورودی و خروجی هایی هست.
  2. واژه SOAP یا Simple Object Access Protocol: پروتکل انتقال پیام که بر اساس این پروتکل داده ها بر اساس فرمت XML و بوسیله درخواست های HTTP به اشتراک گذاشته میشن.
  3. واژه SOA یا Service Oriented Architecture: این واژه که به معنی معماری سرویس گرا هست، یک الگوی معماری برای طراحی نرم افزار ها هست که امکانات و ویژگی های یک نرم افزار بوسیله سرویس هایی در محیط شبکه در دسترس قرار میگیرن. (به عنوان مثال، لایه Data Access برای ارتباط با بانک اطلاعاتی، لایه Service جهت ارائه سرویس ها مبتنی بر پروتکل SOAP و لایه Presentation برای ارتباط با کاربر مثال یک وب سایت یا یک Windows Application)

تفاوت وب سرویس و API در چیست؟ به زبان ساده

تفاوت API و Web Service

حالا که ما با تعریف API و Web Service آشنا شدیم، ببینیم ای دو واژه چه تفاوت هایی با هم دارن؟ به طور کلی نمیشه گفت که این دو مفهوم، کاملاً جدا از همدیگه یا کاملاً شبیه به هم هستند. در حقیقت میشه گفت هر کدوم میتونن زیر مجموعه ای از اون یکی باشن. هر وب سرویس یک API هست، به این خاطر که به بوسیله وب سرویس می تونیم امکانات و داده های یک نرم افزار رو به اشتراک بزاریم، اما یک API لزوماً یک Web Service نیست.

بالا گفتیم که وب سرویس حتماً باید در محیطی که یک یا چند کامپیوتر بر بستر شبکه با هم در ارتباط هستند باشه، اما API الزاماً این طور نیست (مثل سیستم عامل ویندوز که یکسری API رو در اختیار کاربر میزاره) در این مطلب سعی کردن که تعریفی از API و Web Service ارائه بدیم و تفاوت این دو مفهوم رو بررسی کنیم. به عنوان سخن آخر باید به این نکته اشاره کنیم که امروزه از هر دوی این موارد بسیار پر کاربرد هستند و در بخش های مختلفی مورد استفاده قرار میگیرن، اما Web API به صورت دارن جای Web Service ها رو میگیرن و استفاده بیشتری از Web API میشه.


حسین احمدی
حسین احمدی

بنیانگذار توسینسو و برنامه نویس و توسعه دهنده ارشد وب

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

نظرات