API چیست؟

دسته بندی: برنامه نویسی
سطح مقاله: متوسط
زمان مطالعه: 7 دقیقه
۱۸ فروردین ۱۳۹۸
فارسی
ای پی آی
English
API

API در گفت و گو‌های برنامه نویسان به صورت پرتکرار استفاده می‌شود .ممکن است کسانی را که به تازگی به دنیای برنامه نویسی وارد شده اند، کمی سردرگم کند. با توجه به این موضوع ممکن است از خودتان بپرسید API چیست؟ چه کاربردی دارد؟ این‌ها سوالاتی است که معمولا ذهن برنامه نویسان تازه کار را به خود مشغول می‌کند. و خبر بد اینکه دنیای اینترنت سرشار از اطلاعات گیج کننده در مورد API است.

فرض کنید نیاز دارید مبلغ موجودی حساب بانکی تان را مشاهده کنید. بنابراین برای این منظور زمانی که در ماشینتان در پشت چراغ قرمز هستید از موبایل بانکتان استفاده می‌کنید. شما می‌توانستید همین کار را از طریق وب سایت بانک هم انجام دهید. هیچ فرقی نمی‌کند که شما برای این کار از کدام نرم افزار بانک استفاده کرده باشید. در واقع شما یک درخواست (Request) به بانکتان فرستاده اید، و یک پاسخ (Response) که همان مبلغ موجودی شما است دریافت کرده اید. در هر دو روش برای دریافت اطلاعات از API بانک استفاده شده است.

API مخفف عبارت Application Programming Interface است. به زبان ساده API بخشی از برنامه است که وظیفه ارائه اطلاعات را دارد. پس از دریافت درخواست یک نرم افزار، یک پاسخ به همراه اطلاعات درخواست شده را به آن نرم افزار ارسال می‌کند.

API چیست

فهرست محتوای این مقاله

تفاوت API و وبسایت

همانطور که می‌دانید در نگاه کلی، اینترنت مجموعه ای از سرورهاست. صفحات سایت‌های مختلف بر روی یکی از این سرور ها، که به آن‌ها سرور remote می‌گوییم قرار دارد. از یک دیدگاه خاص عملکرد این سرورهای remote شباهت بسیار زیادی به API دارد. در واقع شما می‌توانید لپتاپ شخصی خود را به یک سرور محلی تبدیل کنید. زمانی که شما یک آدرس اینترنتی مانند https://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 چیستدر این مثال از 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 ارائه شده توسط اپلیکیشن درخواست ارسال کرده و اطلاعات مورد نظر را از طریق پیام پاسخ دریافت نمایند.

چه امتیازی به این مقاله می دید؟
نویسنده زهرا فرحمند

نظرات کاربران

نازمحمد گری

با تشکر از شما/ مطالب مفیدی بود/.

Mahmoud Haji Seyed Javadi

ممنون از سایت خوبتون ، دوستتون دارم آقای آوند عزیز جناب علی محمدی عزیز ، جناب شاهینی عزیز و همه دست اندر کاران عزیز، زنده و موفق باشید

زهرا فرحمند

پاینده باشید. ما هم از همراهی شما خوشحالیم و شما رو دوست داریم 🙂

امیر هادیان

با سلام
مطالبی که در رابطه با API بود رو خوندم ولی کامل متوجه تفاوتش با وبسایت نشدم . برای مثال نمیشه تلگرام یا اینسترام برای خدماتی که میخوان به برنامه نویس ها ارائه بدهند از یک وبسایت مجزا استفاده کنند یا دقیقا API تو بطن خوده وبسایت قرار میگیره؟

زهرا فرحمند

سلام آقای هادیان عزیز.
ببینید API فقط بخشی از کدهای سایته. مثلا شما علاقه مندید که جدول لیگ برتر رو در سایت خودتون داشته باشید ولی خوب به روز رسانی لحظه ای این اطلاعات کار خیلی سختیه. سایت های ورزشی با استفاده از API خودشون به شما کمک می کنن که با استفاده از یه URL ساده اطلاعات رو ازشون درخواست بدید و اطلاعات به طور خودکار در یک Response به شما برگرده.

reza

سلام وقت شما بخیر
ممنون بابت بیان روان و سادتون
ولی اول نوشته از انواع api صحبت کرده
بودین ولب در ادامه خبری از توضیح دادنشون نبود
لطفا در این مورد هم صحبت کنید

زهرا فرحمند

سلام رضای عزیز. بله حتما مقالات رو به زودی به روز و کامل تر می کنیم. از صبوریتون پیشاپیش ممنونیم 🙂

لقمان نیریزی

بسیار جالب و مفید بود. فقط یه سوال” اگه یه سرور محلی رو مثل لپتاب به سروری که بتوان با استفاده از نت بهش دسترسی پیدا وکنیم چجوریه؟ با تشکر

زهرا فرحمند

سلام جناب آقای تبریزی عزیز. ممنون از توجهتون. من متاسفانه متوجه سوال شما نشدم اگر امکانش هست بیشتر توضیح بدید 🙂

Daniel Yousefi Far

API واقعا خیلی عالی هستند، مثلا API یک سایت ذخیره سازی ابری، این امکان را به ما می دهد که بدون مراجعه به آن سایت فایل آپلود کنیم، حذف کنیم و … از کار ها را انجام بدیم.

لقمان آوند

بله دقیقا جناب یوسفی
ممنون از مثال خوبتون

ارسال دیدگاه
خوشحال میشیم دیدگاه و یا تجربیات خودتون رو با ما در میون بذارید :