در این مقاله قصد داریم در رابطه با این که API چیست؟ و ماهیت اصلی آن چیست، صحبت کنیم.
بیشتر در حوزه نرم افزار این کلمه کاربرد دارد. با گذشت زمان و پیشرفت علم و فناوری، این نیاز
احساس شد تا به جای تعامل انسان با نرمافزار، خودِ نرمافزارها نیز بتوانند بدون دخالت انسان با
یکدیگر تعامل داشته باشند و در واقع یک سیستم کامپیوتری بر خلاف انسان چشم و گوش ندارد تا با
دیدن رابط کاربری بتواند به عنوان مثال روی دکمهٔ خاصی کلیک کند تا اطلاعات مورد نظرش را به
دست آورد علاوه بر این که یک نرمافزار مانند انسانها نیازی نداشت تا برای ارتباط با نرمافزاری دیگر از
یک رابط کاربری (UI) زیبا و کاربرپسند برخوردار باشد و اینجا بود که مفهوم API شکل گرفت.
API چیست؟
API مخفف واژه Application Programming Interface می باشد که میتوان آن را «رابط
برنامهنویسی نرمافزار» نام برد. در واقع، API مانند UI است فرق آن این است که به جای
انسان، یک سیستم کامپیوتری قرار است با آن تعامل داشته باشد. از آن جایی که واژهٔ
Interface در فارسی «فصل مشترک» ترجمه می شود، میتوان API را فصل مشترکی ما بین دو
نرمافزار یا اپلیکیشن دانست. (نیاز به توضیح است که در این بحث واژگانی همچون نرمافزار،
اپلیکیشن،سیستم و … میتوانند به جای یکدیگر استفاده شوند و تفاوت معنایی خاصی ندارند.)
در بحث وب نیز APIها امکان استفاده از دادهها و عملکرد سرویسهای بزرگی مثل گوگل یا فیسبوک
را به امکانات اپلیکیشنها یا وبسایتهای مختلف اضافه میکنند. به عنوان نمونه سرویس« Yelp»،
بانک اطلاعاتی عظیمی حاوی آدرس رستورانها و مراکز خرید و حتی میزان محبوبیت آنها در اختیار
دارد. مسلما طراحی و پیادهسازی نقشهای اختصاصی برای این سایت امری وقتگیر و مشکل خواهد
بود، اما با استفاده از APIها ، نقشههای Google Maps (همینطور سرویس نقشهی اپل) به امکانات
این سایت اضافه شده است و در نهایت با ترکیب عملکرد این دو سرویس، سرویسی بهبود یافته
دراختیار کاربران Yelp قرار میگیرد. دربرخی بازیهای ویدئویی نیز، استفاده از سرویسهای فیسبوک
مانند چت، ثبت امتیازهای برتر و دعوت از دوستان توسط APIها امکانپذیر شده است.
چگونگی ارتباط بین نرم افزار ها
APIها با آشکار سازی بخشی از عملکرد و اطلاعات نهفته موجود در برنامهها، تعامل آنها با
محیط خارج را برقرار میکنند. البته این آشکارسازی بصورت امن و با محدودسازی دسترسی دیگر
برنامههای خارجی امکان پذیر می باشد. این روش امکان اشتراکگذاری دادهها بین برنامههای مختلف
را انجام می دهد و بدون نیاز به توسعهدهندگان (به منظور اشتراکگذاری کدهای این برنامهها)، تعامل
بین نرمافزارها نیز امکانپذیر میشود. اشتراکگذاری کدها در این مقیاس علاوه بر اتلاف وقت و
ناکارآمد بودن، برای برنامهنویسهایی که تمایل به محرمانه نگه داشتن کدها دارند نیز ناخوشایند
است. این شرایط حتی برای برنامههای متن باز نیز صدق می کند. جستجوی دستورات خاص از بین
تمام کدهای یک اپلیکیشن، بسیار زمانبر می باشد. خوشبختانه APIها دسترسی برنامههای خارجی به
برخی مشخصههای خاص را محدود میکنند و با تعریف شیوهی تعامل سرویسها یا نرمافزارها با
یکدیگر، امکان ایجاد یک ارتباط امن و سودمند را فراهم میکنند.
جایگاه API ها
امروزه APIها جایگاه بسیار مهمی در ارتباطات دارند. برنامهنویسها در چارچوب این پروتکلها،
بهرهوری از شبکههای اجتماعی مثل فیسبوک و یا خدماتی مانند google maps یا حتی سرویسهای
ذخیرهسازی ابری مانند dropbox را ممکن می سازند. به عنوان نمونه توسعهدهندگان اپلیکیشنهای
بازی، APIهای همگامسازی را در اختیار کاربر قرار میدهند. با استفاده ازهمگام سازی، امکان
ذخیرهسازی جایگاه خود را در بازی در فضای ابری خواهید داشت و بدین ترتیب میتوانید با استفاده
از دستگاههای دیگر نیز ادامهی بازی را از همان نقطه از سر بگیرید.
با به کار بردن APIها در زمان خود صرفهجویی کنید و آسودگی کاربران را فراهم کنید. به عنوان مثال
اکثر کاربران شبکههای اجتماعی، استفاده از کلاینتهای فیسبوک در تلفنهای همراه را به رابط
وبسایت آن ترجیح میدهند.
API های معروف
API ها همه جا حضور دارند. محبوب ترین و معروف ترین API ها به رابط های کاربردی برنامه نویسی
وب یا Web API مثل Google Maps API، Twitter API و Fickr API تعلق می گیرد. شما می توانید
یک فهرست کامل و طبقه بندی شده از API ها در Programmable Web و WebMashup بیابید.
همچنین محبوبیت API ها و سطح علاقه کاربران و خدماتی که به واسطه API ارائه می شود را ببینید.
در واقع شما از API با توجه به نیازها و سطح تخصص خود استفاده می کنید. اگر شما بخواهید یک
سرویس بزرگ در اینترنت ایجاد کنید، در هر زمینه یک برنامه برای وب لازم دارید باشید باید از زبان
های وب مثل PHP, ASP.NET, Java یا Python استفاده کنید. برای یک شروع خوب این است که از
صفحه رسمی API سرویس مورد نظرتان می توانید بازدید کنید. همچنین می توانید دنبال کتابخانه
های دیگران که به زبان مورد نظر شما نوشته اند نیز بگردید. معمولا این کتابخانه ها کار شما را آسان تر
و سریعتر می کنند. به عنوان مثال توییتر تعدادی از این کتابخانه ها را در API ویکی خود ارائه می
دهد. اولین ارتباط بین برنامه ها ممکن است دقیقا بر اساس یک سند رسمی API نبوده، اما امروزه آن
ها بخش مهی از برنامه شما به خصوص اگر در رابطه با وب باشد، هستند.
امیدواریم از مطالبی رابطه با این که API چیست؟ بیان کردیم، استفاده لازم را برده باشید. برای اطلاع
بیشتر از سایر مقالات مستر لایسنس به وبلاگ مستر لایسنس مراجعه نمایید.