همه چیز درباره API
API در گفت و گو های برنامه نویسان به صورت پرتکرار استفاده می شود .ممکن است کسانی را که به تازگی به دنیای برنامه نویسی وارد شده اند، کمی سردرگم کند. با توجه به این موضوع ممکن است از خودتان بپرسید API چیست؟ چه کاربردی دارد؟ این ها سوالاتی است که معمولا ذهن برنامه نویسان تازه کار را به خود مشغول می کند. و خبر بد اینکه دنیای اینترنت سرشار از اطلاعات گیج کننده در مورد API ها است.
فرض کنید نیاز دارید مبلغ موجودی حساب بانکی تان را مشاهده کنید. بنابراین برای این منظور زمانی که در ماشینتان در پشت چراغ قرمز هستید از موبایل بانکتان استفاده می کنید. شما می توانستید همین کار را از طریق وب سایت بانک هم انجام دهید. هیچ فرقی نمی کند که شما برای این کار از کدام نرم افزار بانک استفاده کرده باشید. در واقع شما یک درخواست (Request) به بانکتان فرستاده اید، و یک پاسخ (Response) که همان مبلغ موجودی شما است دریافت کرده اید. در هر دو روش برای دریافت اطلاعات از API ها بانک استفاده شده است.
API مخفف عبارت Application Programming Interface است. به زبان ساده API ها بخشی از برنامه است که وظیفه ارائه اطلاعات را دارد. پس از دریافت درخواست یک نرم افزار، یک پاسخ به همراه اطلاعات درخواست شده را به آن نرم افزار ارسال می کند.
تفاوت API و وبسایت
همانطور که می دانید در نگاه کلی، اینترنت مجموعه ای از سرورهاست. صفحات سایت های مختلف بر روی یکی از این سرور ها، که به آن ها سرور remote می گوییم قرار دارد. از یک دیدگاه خاص عملکرد این سرورهای remote شباهت بسیار زیادی به API دارد. در واقع شما می توانید لپتاپ شخصی خود را به یک سرور محلی تبدیل کنید. زمانی که شما یک آدرس اینترنتی مانند http://www.7learn.com را در مرورگر خود وارد می کنید، یک درخواست از مرورگر کامپیوتر شما به سرور remote سون لرن ارسال می شود. زمانی که مرورگر پاسخ سرور را دریافت کرد، کد HTML داخل آن را در خود ترجمه کرده و نمایش می دهد.
از دید مرورگر، سرور remote سون لرن یک API محسوب می شود. از این دید، مرورگر نیز خود یک client یا کاربر است. این به آن معنی است که هر زمان که شما یک آدرس اینترنتی را در مرورگر خود وارد می نمایید، در حال استفاده از نوعی API هستید. البته توجه کنید که در حقیقت، سرور remote یک API نیست. در واقع API ها یک برنامه است که در بخشی از کامپیوتر سرور remote اجرا می شود. این برنامه روی سرور درخواست ها را دریافت و جواب را در قالب پاسخ هایی به کاربران یا کلاینت ها ارسال می کند.
API چگونه به کاربران خدمات می دهد
شاید اسامی سایت هایی به گوشتان خورده باشد که خدمات خود را در قالب API ها به کاربران خود ارائه می دهند. مثلا شرکت اینستاگرام یک API را ارائه می دهد که با استفاده از آن برنامه نویسان می توانند به فالوئرهای یک اکانت و سایر اطلاعات او دسترسی داشته باشند. این API به برنامه نویسان کمک می کند با استفاده از آن اپلیکیشن هایی مانند آنفالویاب و فالوئر بگیر بسازند. بیشتر شرکت های بزرگ دنیا، انواعی از API را برای استفاده های گوناگون در اختیار کاربران خود قرار داده اند.
دسترسی به API ها
به زبان ساده زمانی که شرکتی یک API را در اختیار کاربران خود می گذارد به این معنی است که یک یا چند URL ارائه می دهد که به تناسب درخواست های کاربران، پاسخ هایی حاوی اطلاعات مناسب را ارسال می کند. البته این به آن معنی نیست که همانند یک صفحه وب، این پاسخ ها حاوی اطلاعات گرافیکی هستند. یعنی شما حتی می توانید از طریق وارد کردن URL ها در مرورگر خود، به اطلاعات دسترسی پیدا کنید. پاسخ API معمولا در قالب JSON ارسال می شود. اطلاعات JSON به راحتی می تواند در کدها توسط برنامه نویسان مورد استفاده قرار بگیرد. به مثال زیر توجه کنید:
در این مثال از API سایت ip-api استفاده و اطلاعات یک ip خاص را درخواست کرده ایم. API این سایت اطلاعات ip را در اختیار ما گذاشته است. به خاطر داشته باشید که معمولا روش استفاده از هر API و شیوه درخواست اطلاعات از آن در مستندات آن API به طور کامل آموزش داده شده و در اختیار کاربران قرار می گیرد. گفتیم می توانیم با استفاده از وارد کردن URL هر API اطلاعات را از آن درخواست کنیم. به عنوان مثال از طریق مستندات ip-api متوجه می شویم که می توانیم با استفاده از وارد کردن URL در قالب زیر همان اطلاعات را در مرورگر دریافت کنیم:
http://ip-api.com/json/89.187.177.95
جمع بندی
بسیاری از اپلیکیشن ها و سایت ها یک یا چند API را در دسترس برنامه نویسان قرار می دهند تا از این طریق از سرویس های آن ها در برنامه های خود استفاده کنند. به عنوان مثال شرکت تلگرام یک API را در اختیار توسعه دهندگان گذاشته که با استفاده از آن می توانند روبات های تلگرامی بنویسند. همینطور اینستاگرام نوعی از API را ارائه کرده که اپلیکیشن های آنفالویاب و لایک بگیر با استفاده از آن نوشته شده است. با استفاده از API توسعه دهندگان می توانند برای دریافت اطلاعات به URL ارائه شده توسط اپلیکیشن درخواست ارسال کرده و اطلاعات مورد نظر را از طریق پیام پاسخ دریافت نمایند.