وقتی تازه تو شرکت Leverege شروع به کار کردم، مدام میشنیدم که تیم توسعه درباره API حرف میزنن و فکر کردم بهتره بدونم این یعنی چی. پس API چیه؟ شاید مثل شما، وقتی فهمیدم API مخفف Application Program Interface (رابط برنامهنویسی اپلیکیشن) هست، هیچ کمکی بهم نکرد. خیلی از نتایجی که تو گوگل پیدا کردم هم برای یه آدم غیرفنی مثل من گنگ بودن.
ولی حتی اگه برنامهنویس نیستید و خودتون رو آدم فنی نمیدونید، باید بدونید API چیه. چرا؟ چون APIها نقش مهمی تو خیلی از محصولها و سرویسهایی که امروز برامون ارزش دارن بازی میکنن. APIها به برنامههای مختلف اجازه میدن با هم ارتباط برقرار کنن.
امروز میخوام یه مثال ساده و قابل فهم براتون بیارم که به من کمک کرد بفهمم API چیه و چرا انقدر مهمه.
سفارش غذا
فرض کن خونهای، گرسنهاته، و حال نداری خودت چیزی درست کنی. وقتشه غذا سفارش بدی!
تصمیم میگیری از Jack’s Burgers غذا بگیری. منوی اونها رو نگاه میکنی، گزینهها رو میبینی، و یه غذای خاص رو سفارش میدی. سفارش به Jack’s Burgers میرسه، به آشپزخونه میره، و یه سری کار انجام میشه تا غذات آماده بشه. بعد غذا بهت تحویل داده میشه و تو سریع میخوریش.
ممم… خوشمزه بود!
ولی هنوز گرسنهاته و دیگه برگر نمیخوای. این بار میری سراغ Jill’s Pizza.
وقتی به Jill’s Pizza زنگ میزنی و سفارش میدی، فکر میکنی چی میشه اگه بخوای از منوی Jack’s Burgers سفارش بدی؟ احتمالاً اونا گیج میشن و مطمئناً اون غذایی که میخوای رو نمیتونی بگیری.
پس API چیه؟ مثل یه منوئه!
تو این مثال، تو یه برنامه هستی و رستورانها هم برنامههایی هستن که میخوای باهاشون ارتباط برقرار کنی. برای اینکه چیزی که میخوای (غذا) رو از برنامه دیگه (رستوران) بگیری، باید یه درخواست (سفارش) بدی و این درخواست باید به یه روش خاص (که منو مشخص کرده) باشه. اگه درخواستت رو اشتباه بدی، چیزی که میخوای رو نمیتونی بگیری.
APIها مثل منوها هستن. منو یه لیست از غذاها رو مشخص میکنه و وقتی یکی از اون غذاها رو سفارش میدی، رستوران یه سری کار انجام میده و غذای درخواستی رو برات میفرسته. API هم یه لیست از دستورات داره و وقتی یه برنامه از یکی از اون دستورات استفاده میکنه، برنامه دیگه یه سری کار انجام میده و چیزی که با اون دستور درخواست شده (معمولاً یه جور داده) رو برمیگردونه.

البته این مثال سفارش غذا کامل نیست. وقتی غذا سفارش میدی، میتونی با کلی روش مختلف بگی و همون نتیجه رو بگیری. ولی برنامهها مثل آدما باهوش و انعطافپذیر نیستن. وقتی به یه برنامه دیگه درخواست میدی، باید درخواستت دقیقاً به یه شکل خاص باشه.
اگه رستورانها مثل برنامهها بودن، گفتن “برگر خونه، نیمپز، بدون خیارشور، بهجای سیبزمینی سرخکرده سالاد کلم بده” برات غذا میآورد، ولی اگه بگی “میشه لطفاً برگر خونه رو نیمپز با سالاد کلم بهجای سیبزمینی و بدون خیارشور بدید”، رستوران نمیفهمه چی میخوای چون فرمت درخواستت درست نیست.
پس APIها یه لیست از دستورات و فرمت دقیق اون دستورات رو مشخص میکنن. وقتی یه شرکت API نرمافزارش رو منتشر میکنه، انگار به همه میگه: “این چیزیه که میتونید از برنامه ما بگیرید و اینم دقیقاً روش درخواست دادنشه.”
حالا که میدونی API چیه… که چی؟
APIها باعث میشن برنامهها بتونن با هم تعامل کنن. این برای برنامهها خیلی مهمه چون ممکنه با زبانهای مختلف نوشته شده باشن. APIها مثل یه پل میمونن که “مشکل زبان” رو حل میکنن.
ضمناً، APIها یعنی کاربرات لازم نیست برنامه تو رو ترک کنن تا از برنامه دیگه استفاده کنن. مثلاً با استفاده از API سایت weather.com، میتونی دادههای هواشناسی رو بگیری و تو سایت خودت نشون بدی. اینطوری بازدیدکنندهها میتونن بدون اینکه سایتت رو ترک کنن و برن به weather.com، اطلاعات هوا رو ببینن.
برگردیم به مثال غذا—APIها یعنی میتونی خونه بمونی و از رستورانهای مختلف چیزای مختلف سفارش بدی بدون اینکه لازم باشه خودت بری بیرون.
APIها پیچیدگی رو هم کم میکنن. وقتی از رستوران غذا سفارش میدی، کلی کار پیچیده پشت صحنه انجام میشه: خرد کردن مواد، پختن با دقت، بستهبندی غذا و… فکر کن چقدر اذیتکننده میشد اگه مجبور بودی هر قدم رو موقع سفارش توضیح بدی! به جاش، فقط اسم غذا رو از منو میگی و بقیه کارها خودش خودکار انجام میشه.
به همین شکل، وقتی از API برای درخواست چیزی از یه برنامه استفاده میکنی، کلی فرایند پیچیده پشت صحنه انجام میشه که لازم نیست نگرانش باشی. فقط چیزی که درخواست دادی رو تحویل میگیری.
یه مثال عالی Alexa Voice Service API هست. توسعهدهندههای معمولی نمیتونن پردازش زبان طبیعی (Natural Language Processing) مثل الکسا بسازن، ولی میتونن از API الکسا استفاده کنن تا ابزارهایی بر اساس اون درست کنن. پس بهجای اینکه سعی کنن بفهمن چطور گفتار رو به معنی تبدیل کنن (که خیلی سخته)، میتونن رو برنامههای باحال جدید با کنترل صوتی تمرکز کنن.
به همین دلیله که APIها برای اینترنت اشیاء (Internet of Things) خیلی مهم هستن. APIها به شرکتها اجازه میدن رو تخصص خودشون تمرکز کنن و ابزارها و برنامههای شرکتهای دیگه رو هر وقت لازم باشه وصل کنن تا یه محصول یا سرویس IoT بسازن که از مجموع بخشهاش بزرگتره.
اگه سوالی داری یا میخوای بیشتر بدونی، تو کامنتها برام بنویس!
منبع: iotforall