به زبان ساده، APIها (مخفف Application Programming Interface) رابطهایی نرمافزاری هستند که ارتباط بین نرمافزارهای مختلف را پیادهسازی میکنند. زمانی که شما از دسکتاپ یا لپتاپ خود استفاده میکنید، تبادل اطلاعات میان نرمافزارهای مختلف توسط APIها انجام میگیرد. برای مثال هنگامی که قسمتی از یک متن در برنامهی LibreOffice را کپی کرده و در یکی از برنامههای Excel یا ورد paste میکنید، API مربوط به این بخش، وظیفهی تعریف دادههای جابجا شده را برای دو برنامه به عهده گرفته است و به همین دلیل شما همان متن را در محیط برنامهی دوم هم مشاهده میکنید.
در قسمت وب نیز APIها امکان استفاده از دادهها و عملکرد سرویسهای بزرگی مثل گوگل یا فیسبوک را به امکانات اپلیکیشنها یا وبسایتهای مختلف اضافه میکنند. برای مثال سرویس« Yelp»، بانک اطلاعاتی عظیمی شامل آدرس رستورانها و مراکز خرید و حتی میزان محبوبیت آنها در اختیار دارد. مسلما طراحی و پیادهسازی نقشهای اختصاصی برای این سایت امری وقتگیر و مشکل خواهد بود، اما با استفاده ازAPIها ، نقشههای Google Maps (همینطور سرویس نقشهی اپل) به امکانات این سایت اضافه شده است و در نهایت با ترکیب عملکرد این دو سرویس، سرویسی بهبود یافته دراختیار کاربران Yelp قرار میگیرد. دربرخی بازیهای ویدئویی نیز، استفاده از سرویسهای فیسبوک مانند چت، ثبت امتیازهای برتر و دعوت از دوستان توسط APIها امکانپذیر شده است.
اما چگونه ارتباط بین این نرمافزارها یا سرویسها ایجاد میشود؟ در واقع APIها با نمایان ساختن بخشی از عملکرد و اطلاعات نهفته موجود در برنامهها، تعامل آنها با محیط خارج را ممکن میکنند. البته این آشکارسازی بصورت امن و با محدودسازی دسترسی دیگر برنامههای خارجی صورت میپذیرد. این شیوه امکان اشتراکگذاری دادهها بین برنامههای مختلف را فراهم کرده و بدون نیاز به توسعهدهندگان (به منظور اشتراکگذاری کدهای این برنامهها)، تعامل بین نرمافزارها نیز امکانپذیر میشود. اشتراکگذاری کدها در این مقیاس علاوه بر اتلاف وقت و ناکارآمد بودن، برای برنامهنویسهایی که تمایل به محرمانه نگه داشتن کدها دارند نیز خوشایند نخواهد بود. این شرایط حتی برای برنامههای متن باز نیز صادق است; جستجوی دستورات خاص از بین تمام کدهای یک اپلیکیشن، بسیار زمانبر خواهد بود. خوشبختانه APIها دسترسی برنامههای خارجی به برخی مشخصههای خاص را محدود میکنند و با تعریف شیوهی تعامل سرویسها یا نرمافزارها با یکدیگر، امکان ایجاد یک ارتباط امن و سودمند را مهیا میکنند.
در حال حاضر APIها جایگاه بسیار مهمی در ارتباطات دارند; برنامهنویسها در چارچوب این پروتکلها، بهرهوری از شبکههای اجتماعی نظیر فیسبوک و یا خدماتی مانند google maps یا حتی سرویسهای ذخیرهسازی ابری مانند dropbox را ممکن ساختهاند. برای مثال توسعهدهندگان اپلیکیشنهای بازی، APIهای همگامسازی را در اختیار کاربر قرار میدهند. با استفاده ازهمگام سازی، امکان ذخیرهسازی جایگاهتان در بازی را در فضای ابری خواهید داشت و بدین ترتیب میتوانید با استفاده از دستگاههای دیگر نیز ادامهی بازی را از همان نقطه از سر بگیرید.
استفاده از APIها صرفهجویی در زمان و آسودگی کاربران را در پی خواهد داشت. برای نمونه بسیاری از کاربران شبکههای اجتماعی، استفاده از کلاینتهای فیسبوک در تلفنهای همراه را به رابط وبسایت آن ترجیح میدهند. در این مورد هم APIهای فیسبوک بازیگران اصلی هستند.
APIهای مختلف همه جا وجود دارند! حتی در همین صفحه شما آیکونهایی که به منظور اشتراکگذاری این مطلب در فیسبوک و گوگل پلاس را مشاهده میکنید. این لینکها با فراخوانی APIهای مرتبط، به شما امکان پست یا توئیت کردن نظرات را بدون خارج شدن از این صفحه خواهند داد. حتی در قسمت نظرات هم APIها حضور دارند و ثبت و نمایش نظرات توسط آنها و بدون نیاز به تایید مدیران سایت صورت میگیرد.
در یک نگاه کلی میتوان گفت که APIها زمینه را برای توسعهی Mashupها فراهم کردهاند. Mashupها برنامهها یا سرویسهای تحت وبی هستند که با استفاده از APIهای چند سرویس مختلف (مثل گوگل، فیسبوک، توئیتر..) عملکرد تمامی آنها را در قالب یک برنامه یا یک سرویس وب ارائه میکنند. دسترسی گستردهای که به واسطهی وجود APIها برای سرویسهای بزرگ حاصل شده است، تجربهی جدیدی برای کاربران وب به ارمغان آورده است.
البته APIها همواره هم مفید نبودهاند! شرکت توئیتر از یک سال پیش محدودیتهایی برای اپلیکیشنهای وابسته به APIهای این شرکت وضع کرده است. این تصمیم عملا برنامههای وابسته به توئیتر را بیاستفاده میکند و کاربران فقط امکان استفاده از برنامهها و وبسایت این شرکت را خواهند داشت و بدین ترتیب توئیتر میتواند مطمئن باشد که درآمدزایی مبتنی بر نمایش تبلیغات، به صورت موثر و متمرکزتری انجام میشود.
مثالهایی از این دست کم نیستند. شرکتهای مختلفی برای کسب سود بیشتر، سرویسهای مختلف و APIهایی که اپلیکیشنهای شما به آنها وابسته هستند را از دسترس خارج کردهاند. شرکت گوگل طی تصمیماتی سرویسهایی مانند Google Health و اخیرا Google Reader را که گمان میرفت به سمت زیانده بودن پیش میروند از دسترس خارج کرد و این سرویسها هیچوقت دوباره راه اندازی نشدند. مسلما این تصمیمات برای کاربرانی که از اپلیکیشنهای وابسته استفاده میکنند ناخوشایند خواهد بود.
با وجود این مشکلات، اشتیاق روز افزون توسعهدهندگان برای استفاده از قابلیتهای APIها و محبوبیت اپلیکیشنهای وابسته به سرویسهای کاربردی درمیان کاربران بر کسی پوشیده نیست.