API در گفت و گوهای برنامه نویسان به صورت پرتکرار استفاده میشود .ممکن است کسانی را که به تازگی به دنیای برنامه نویسی وارد شده اند، کمی سردرگم کند. با توجه به این موضوع ممکن است از خودتان بپرسید API چیست؟ چه کاربردی دارد؟ اینها سوالاتی است که معمولا ذهن برنامه نویسان تازه کار را به خود مشغول میکند. و خبر بد اینکه دنیای اینترنت سرشار از اطلاعات گیج کننده در مورد API است.
فرض کنید نیاز دارید مبلغ موجودی حساب بانکی تان را مشاهده کنید. بنابراین برای این منظور زمانی که در ماشینتان در پشت چراغ قرمز هستید از موبایل بانکتان استفاده میکنید. شما میتوانستید همین کار را از طریق وب سایت بانک هم انجام دهید. هیچ فرقی نمیکند که شما برای این کار از کدام نرم افزار بانک استفاده کرده باشید. در واقع شما یک درخواست (Request) به بانکتان فرستاده اید، و یک پاسخ (Response) که همان مبلغ موجودی شما است دریافت کرده اید. در هر دو روش برای دریافت اطلاعات از API بانک استفاده شده است.
API مخفف عبارت Application Programming Interface است. به زبان ساده 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 سایت 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 را ارائه کرده که اپلیکیشنهای آنفالویاب و لایک بگیر با استفاده از آن نوشته شده است. با استفاده از API توسعه دهندگان میتوانند برای دریافت اطلاعات به URL ارائه شده توسط اپلیکیشن درخواست ارسال کرده و اطلاعات مورد نظر را از طریق پیام پاسخ دریافت نمایند.
من میخواستم در سایت خود یک باکس بابت عضویت در خبرنامه ایجاد کنم که کاربر با وارد کردن ایمیل و زدن دکمه عضویت به یه سایت دیگر که CRM میباشد ارسال شود
طبق بررسی متوجه شدم از طریق وب سرویس و تعریف api میباشد
آموزشی بابت این مورد دارین؟؟
نازنین کریمی مقدم۲۳ آذر ۱۴۰۱، ۰۹:۴۷
درود
سایت با چه زبانی نوشته شده؟
نازمحمد گری۲۵ فروردین ۱۳۹۸، ۰۵:۰۶
با تشکر از شما/ مطالب مفیدی بود/.
Mahmoud Haji Seyed Javadi۲۴ فروردین ۱۳۹۸، ۱۱:۴۷
ممنون از سایت خوبتون ، دوستتون دارم آقای آوند عزیز جناب علی محمدی عزیز ، جناب شاهینی عزیز و همه دست اندر کاران عزیز، زنده و موفق باشید
زهرا فرحمند۲۵ فروردین ۱۳۹۸، ۰۵:۰۲
پاینده باشید. ما هم از همراهی شما خوشحالیم و شما رو دوست داریم :)
امیر هادیان۲۲ فروردین ۱۳۹۸، ۰۶:۴۵
با سلام
مطالبی که در رابطه با API بود رو خوندم ولی کامل متوجه تفاوتش با وبسایت نشدم . برای مثال نمیشه تلگرام یا اینسترام برای خدماتی که میخوان به برنامه نویسها ارائه بدهند از یک وبسایت مجزا استفاده کنند یا دقیقا API تو بطن خوده وبسایت قرار میگیره؟
زهرا فرحمند۲۵ فروردین ۱۳۹۸، ۰۵:۱۰
سلام آقای هادیان عزیز.
ببینید API فقط بخشی از کدهای سایته. مثلا شما علاقه مندید که جدول لیگ برتر رو در سایت خودتون داشته باشید ولی خوب به روز رسانی لحظه ای این اطلاعات کار خیلی سختیه. سایتهای ورزشی با استفاده از API خودشون به شما کمک میکنن که با استفاده از یه URL ساده اطلاعات رو ازشون درخواست بدید و اطلاعات به طور خودکار در یک Response به شما برگرده.
reza۱۸ فروردین ۱۳۹۸، ۱۲:۰۰
سلام وقت شما بخیر
ممنون بابت بیان روان و سادتون
ولی اول نوشته از انواع api صحبت کرده
بودین ولب در ادامه خبری از توضیح دادنشون نبود
لطفا در این مورد هم صحبت کنید
زهرا فرحمند۲۵ فروردین ۱۳۹۸، ۰۵:۲۲
سلام رضای عزیز. بله حتما مقالات رو به زودی به روز و کاملتر میکنیم. از صبوریتون پیشاپیش ممنونیم :)
لقمان نیریزی۱۸ فروردین ۱۳۹۸، ۱۱:۵۶
بسیار جالب و مفید بود. فقط یه سوال" اگه یه سرور محلی رو مثل لپتاب به سروری که بتوان با استفاده از نت بهش دسترسی پیدا وکنیم چجوریه؟ با تشکر
زهرا فرحمند۲۵ فروردین ۱۳۹۸، ۰۵:۲۴
سلام جناب آقای تبریزی عزیز. ممنون از توجهتون. من متاسفانه متوجه سوال شما نشدم اگر امکانش هست بیشتر توضیح بدید :)
Daniel Yousefi Far۱۸ فروردین ۱۳۹۸، ۱۱:۵۵
API واقعا خیلی عالی هستند، مثلا API یک سایت ذخیره سازی ابری، این امکان را به ما میدهد که بدون مراجعه به آن سایت فایل آپلود کنیم، حذف کنیم و ... از کارها را انجام بدیم.
لقمان آوند۱۸ فروردین ۱۳۹۸، ۱۲:۱۲
بله دقیقا جناب یوسفی
ممنون از مثال خوبتون
شروع رایگان یادگیری برنامه نویسی
کلیک کنید 👇
دوره الفبای برنامه نویسی با هدف انتخاب زبان برنامه نویسی مناسب برای شما و پاسخگویی به سوالات متداول در شروع یادگیری موقتا رایگان شد: