میتوان گفت که تفاوت وب سرویس و API و بیان تعاریف هر کدام، موضوعی است و در این مقاله قصد داریم به آن بپردازیم. تفاوتی ندارد که به کار برنامه نویسی مشغول هستید یا به طریقی با دنیای وب در ارتباطید. حتما تاکنون دو عبارت Web Service و API به گوشتان رسیده، دو واژهای که بسیار زیاد به کار گرفته میشود و بیشتر زمان ها با یکدیگر اشتباه گرفته میشوند.
تعریف API چیست؟
کلمه API به مفهوم Application Programming Interface است، چنانچه شما به این سه کلمه دقت کنید، قادر خواهید بود به راحتی مفهوم API را متوجه شوید. به عبارتی، یک API به عنوان رابطی شناخته میشود که به دیگر نرم افزارها اجازه میدهد با یک نرم افزار ارتباط برقرار کرده و تعامل داشته باشند. به طور معمول، API ها شامل توابع و روال هایی میباشند که اجازه دستیابی به اطلاعات و همچنین، امکانات یک نرم افزار را میدهند.
شاید این سوال نیز ذهن شما را به خود مشغول کرده باشد که استفاده از API ها از چه زمانی بوده است. میشود گفت استفاده از آنها به زمانی برمیگردد که نخستین برنامه کامپیوتری ایجاد شد، توسعه دهنده ها در این فکر بودند که بتوانند به راحتی ارتباط بین نرم افزارها برقرار کرده و از تمامی امکانات موجود یک نرم افزار استفاده کنند؛ این گونه بود که API پدید آمد اما امروزه واژه API در بیشتر مواقع به Web API اشاره دارد که امکان دسترسی به اطلاعات، دادهها و همچنین، تمامی امکانات یک اپلیکیشن را بر روی اینترنت به ما میدهد.
برای نمونه میتوان به موارد ذکر شده در ادامه مطلب اشاره داشت:
- ورود به سایت های مختلف با استفاده از حساب های گوگل یا فیسبوک
- قابلیت طراحی Plugin برای سایت هایی همانند فیسبوک
- استفاده نمودن از امکان جستجوی گوگل در سایت شخصی
- نمایش دادن نقشه گوگل در سایت ها
تمام موارد بیان شده در بالا، بوسیله API هایی که توسط سایت های مورد اشاره ارائه شدهاند، امکانپذیر میباشد. چنانچه قصد داشته باشیم از منظر تخصصیتری به موضوع بنگریم، میتوانیم بگوییم که یک API، امکان ارسال و همچنین، دریافت درخواست های HTTP را برای شما امکانپذیر میسازد و پاسخ (Response) درخواست ها را مبتنی بر Json یا XML برای شما ارسال مینماید. لازم به ذکر است که دلیل استفاده کردن از Json یا XML این موضوع است که فرمت ها به صورت استاندارد بوده که بر روی پلتفرم های مختلف قابلیت استفاده را دارند.
تعریف Web Service چیست؟
حال که با مفاهیم API و Web API آشنا شدید، Web Service را به شما معرفی خواهیم کرد. به بیانی ساده میشود این گونه گفت که یک Web Service در حقیقت منبع یا Resource هایی میباشند که در فضای اینترنت قابل دسترسی هستند. پس، نخستین شرط یک Web Service این هست که شما حتما میبایستی یک شبکه از کامپیوترهای متصل به یکدیگر را داشته باشید (برخلاف API که نیازی به استفاده از شبکه نیست و تنها یک نرم افزار نصب شده بر روی سیستم هم قادر است یکسری API را در اختیار شما قرار بدهد).
در زمینه وب سرویس ها ما با دو مفهوم برخورد میکنیم که عبارتند از:
- واژه WSDL یا Web Service Definition Language: قالبی مبتنی بر XML که رابط یک وب سرویس پیامک را تعریف میکند که این وب سرویس شامل چه توابع و چه پارامترهای ورودی و خروجی هایی میباشد.
- واژه SOAP یا Simple Object Access Protocol: پروتکلی است که جهت انتقال پیام بکار گرفته میشود؛ طبق این پروتکل، داده ها براساس فرمت XML و از طریق درخواست های HTTP به اشتراک گذاشته میشوند.
- واژه SOA یا Service Oriented Architecture: این واژه که به مفهوم معماری سرویس گرا است؛ الگویای معماری جهت طراحی نرم افزارها میباشد که امکانات و ویژگی های یک نرم افزار با کمک سرویس هایی در محیط شبکه در دسترس قرار میگیرند. (برای نمونه لایه Data Access جهت ارتباط با بانک اطلاعاتی، لایه سرویس برای ارائه دادن سرویس های مبتنی بر پروتکل SOAP و همچنین، لایه Presentation جهت ارتباط با کاربر مثال یک سایت یا یک ویندوز اپلیکیشن است)
تفاوت API و Web Service در چیست؟
اکنون که با معانی API و Web Service آشنایی نسبی پیدا کردید، قصد داریم تفاوت های آن ها را برای شما شرح دهیم. برای توضیح تفاوت وب سرویس و API به طور کلی نمیشود گفت که این دو مفهوم، یا کاملا جدا از یکدیگرند و یا به طور کامل شبیه به همند. در واقع، میشود گفت هر کدام میتواند زیرمجموعهای برای دیگری باشد. هر وب سرویس یک API به شمار میرود، به این دلیل که به وسیله وب سرویس میتوان امکانات و داده های یک نرم افزار را به اشتراک گذاشت، لازم به ذکر است یک API لزوما یک Web Service نیست.
پیشتر بیان شد که وب سرویس به طور حتمی باید در فضایی که یک یا چندین کامپیوتر بر بستر شبکه با هم در ارتباط هستند، باشد، اما API لزوما این گونه نیست (برای مثال سیستم عامل ویندوز که API هایی را در اختیار کاربر میگذارد).
در این مقاله، سعی شد تعریفی از API و Web Service ارائه شود و تفاوت این دو مفهوم بررسی گردد. سخن آخر این که باید به این نکته اشاره شود که امروزه هر دوی این موارد پر کاربرد بوده و در قسمت های مختلفی مورد استفاده قرار گرفته میشود، اما Web API به سرعت در حال گرفتن جای Web Service ها هستند و استفاده بیشتری از Web API میشود.