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