API چیست و چه کاربردی دارد؟ (راهنمای جامع ویدئویی)
اگر علاقمند به دنیای برنامه نویسی باشید، حتما نام API به گوشتان خورده است و این سوال برایتان پیش آمده است که API چیست و چه کاربردی دارد. در این آموزش بصورت کامل میخواهیم و به زبان خیلی ساده دربارهی این مفهوم صحبت کنیم و بگوییم که API چیست؟ چه کاربردی دارد؟ چه مثال های واقعی میتوانیم از API بزنیم؟ چطور میتوانیم از API ها استفاده کنیم؟ در انتها نیز لیستی از API ها را به شما معرفی میکنیم. پس با من در این آموزش همراه باشید تا بصورت کامل با API ها آشنا شویم.
دانلود فایل ویدئویی این آموزش با حجم ۱۱۵ مگ
یک مقدمهی کلی
اگر بخواهیم به سوال API چیست پاسخ دهیم خیلی خوب است که با یک مقدمه شروع کنیم، چند مثال بزنیم و بعد بصورت خاص دربارهی API صحبت کنیم.
فرض کنید که شما اتومبیل شما دچار یک مشکل میشود و شما به یک مکانیک مراجعه میکنید. مکانیک برای اینکه بتواند ماشین شما را تعمیر کند، نیاز به یک سری وسایل دارد، برای مثال شما را برای خرید لنت ترمز به یک مغازه میفرستد، برای خرید روغن موتور به یک مغازهی دیگر و… . در واقع کسب و کارهای دیگر به آن مکانیک کمک میکنند که کار خودش را بهتر انجام دهد و تمام کند.
یا به عنوان مثال دیگر فرض کنید که شما صاحب یک وبسایت هستید و میخواهید در منوی کناری سایتتان اطلاعات آب و هوا و یا اوقات شرعی را نمایش دهید. نکتهای که وجود دارد این است که خود شما بصورت مستقیم به این اطلاعات دسترسی ندارید و نمیدانید که آب و هوا در شهرهای مختلف ایران به چه صورت است.
برای داشتن این امکان در سایتتان، شما از سایت دیگری استفاده میکنید و این امکان را در سایت خود نمایش میدهید. در واقع یک سایت دیگر به شما کمک میکند و اطلاعات آب و هوا، اوقات شرعی و… را به شما میدهد که شما در سایت خود نمایش دهید.
در هر دوی این مثال ها، جایی وجود داشت که به شما کمک میکرد که کاری که میخواهید انجام دهید را بهتر انجام دهید و در واقع به شما امکاناتی را میداد.
صحبت انسان با انسان – سیستم با سیستم
همانطور که دو انسان میتوانند با هم صحبت کنند، مثلا آن مکانیک به شما میگوید که «برو و از فلان مغازه یک لنت ترمز با برند x بخر»، نرم افزارها و سیستم ها نیز میتوانند باهم صحبت کنند و باهم تعامل داشته باشند. به عنوان مثال شما از یک جای دیگر میخواهید که به شما این امکان را بدهد که اوقات شرعی یا وضعیت آب و هوا را در سایتتان نمایش دهد.
نرم افزارها برای اینکه بتوانند با هم صحبت کنند و ارتباط داشته باشند، نیاز به یک پل ارتباطی دارند. پل ارتباطی میان نرم افزارهای مختلف، API میباشد.
API چیست؟
همانطور که در بالا گفتیم، نرم افزارها نیست مانند انسان ها میتوانند باهم ارتباط داشته باشند و این ارتباط بین نرم افزارها از طریق API ها صورت میگیرد. API مخفف Application Programming Interface میباشد که میتوان آنرا رابط برنامه نویسی نرم افزار معرفی کرد.
فرض کنید که شما میخواهید یک برنامهای بنویسید که در آن نیاز به یک سری اطلاعات/امکانات خاص دارید که خودتان بصورت مستقیم امکان دسترسی به این اطلاعات/امکانات را ندارید. در این صورت میتوانید این اطلاعات/امکانات را از یک نرم افزار دیگر بصورت API دریافت کنید.
در واقع API ها به شما کمک میکند که نرم افزاری که درحال نوشتن آن هستید را بهتر کنید، امکانات مختلفی به آن اضافه کنید و آن را دارای امکانات بیشتر کنید. و این کارها را با استفاده از API بقیه سرویس ها انجام میدهید. به این معنی از API های مختلف استفاده میکنید برای اینکه بتوانید امکانات بیشتری در سیستم خود داشته باشید.
در ادامه میخواهیم مثال هایی بزنیم که مفهوم API را برای شما بصورت کامل شفاف کند و دقیقا متوجه شوید که API چیست.
مثال های واقعی از API
برای پاسخ دادن به سوال API چیست میتوانیم ساعت ها توضیحات بسیار تخصصی بدهیم. ولی روش بهتر این است که مثالهای کاملا واقعی داشته باشیم که دقیقا متوجه شویم که API چیست و چه کاربردهایی دارد. در زیر مثال هایی از API میزنیم که بهتر بتوانید متوجه این موضوع شوید.
مثال: ورود با گوگل یا فیسبوک
حتما در بسیاری از سایت ها دیدهاید که هنگام ورود به آن سایت، بجای ثبت نام مستقیم، میتوانید از طریق حساب کاربریتان در گوگل یا فیسبوک اقدام به وارد شدن به آن سایت کنید.
هنگامی که سایت هایی را میبینید که امکان ورود از طریق اکانت گوگل، فیسبوک و… دارند، میتوانید متوجه این شوید که این سایت با استفاده از API اینکار را انجام دادهاند.
به این صورت که برنامه نویسان این سایت، از طریق استفاده از API های گوگل و فیسبوک، این امکان را ایجاد کردهاند که افرادی که روی دکمهی «ورود با گوگل» کلیک میکنند، نام آنها از گوگل گرفته شود که بتوانند با نام آن کاربر، یک حساب کاربری در آن سایت داشته باشد.
اگر بخواهیم دقیق تر توضیح دهیم، فرض کنید که سایت abc.com میخواهد امکان ورود با گوگل یا فیسبوک را به سایت خود اضافه کند. در این صورت،وقتی که کاربر روی یکی از این دکمهها، مثلا ورود با گوگل کلیک میکند، سایت abc.com یک درخواست به گوگل میفرستد و یک سری اطلاعات را از گوگل درخواست میکند. و سپس از آن اطلاعات که میتواند شامل نام کاربر، عکس کاربر، و… باشد، اقدام به ساخت حساب کاربری برای آن سایت میکند.
مثال: عکس های تصادفی با موضوعات مختلف
فرض کنید که شما میخواهید یک سایتی داشته باشید که بتوانید عکس های مختلف تصادفی (Random) به کاربرانتان نشان دهید.
برای انجام اینکار شما میتوانید از سایت هایی که API عکس تصادفی میدهند استفاده کنید. این سایت ها به این صورت عمل میکنند که شما یک درخواست به API آن سایت ها میدهید و آن سایت ها نیز با توجه به درخواست شما، یک پاسخ به آن ارسال میکنند.
مثلا شما میگویید که یک عکس اتفاقی میخواهم، و آن سایت نیز در پاسخ به درخواست شما، آدرس یک عکس را برایتان ارسال میکند.
مثال: سخن بزرگان
برای درک بهتر این سوال که API چیست، مثال دیگری میزنیم. سایتی وجود دارد به نام quotesondesign.com. این سایت یک منبع برای سخن بزرگان و جملات حکیمانه به زبان انگلیسی است.
حالا فرض کنید که شما یک سایت دارید و میخواهید هربار که کاربر وارد آن شد، به آن کاربر سخن بزرگان را در قسمتی از سایت نمایش دهید.
روش اول برای انجام اینکار این است که خودتان مجموعهای از سخن بزرگان را جمع آوری کنید و در سایت خود نمایش دهید. روش دوم استفاده از API سایت Quotesondesign.com میباشد.
API این سایت به این صورت عمل میکند که شما یک درخواست به این سایت ارسال میکنید با این موضوع که من یک سخن حکیمانه میخواهم، API این سایت نیز در پاسخ به درخواست شما، یک جملهی حکیمانه برایتان ارسال میکند که میتوانید آنرا در سایتتان نمایش دهید.
در واقع وقتی که میگوییم شما یک درخواست به API یک سایت ارسال میکنید، به این معنا است که کُدی که شما نوشتهاید آن درخواست را ارسال میکند. و آن سایت نیز در پاسخ به شما کدی را ارسال میکند که آن کد میتواند حاوی یک لینک عکس یا یک جملهی حکیمانه باشد.
پس با توجه به متن بالا متوجه شدیم که برای استفاده از API سایت ها و سرویس های مختلف، نیاز به دانش برنامه نویسی داریم. در انتهای این مطلب دربارهی روش استفاده از API ها صحبت میکنی.
مثال: تلگرامهای غیر رسمی
در ادامهی پاسخ به سوال API چیست خوب است که مثالهایی بزنیم که همهی ما ایرانی ها با آن ها سر و کار داشتیم. در این صورت درک API و رسیدن به پاسخ API چیست میتواند برایمان بسیار ساده تر باشد.
حتما شما هم با تلگرام های غیر رسمی مثل موبوگرام، تلگرام طلایی و… آشنا هستید و شاید از این نرم افزارها استفاده کردهاید. اما آیا برایتان این سوال پیش آمده است که چطور این نرم افزارها میتوانند جایگزین تلگرام شوند؟
روش کار این نرم افزارها به این صورت است که از API تلگرام استفاده میکنند. در واقع پیامرسان تلگرام، یک API کلی ارائه داده است که برنامه نویسان میتوانند به آن API متصل شوند و کارهای مختلفی انجام دهند.
مثلا نرم افزار موبوگرام میتوانست به API تلگرام وصل شود و علاوه بر امکاناتی که خود تلگرام داشت، میتوانست امکانات دیگری مثل مدیریت دانلود یا حالت روح را نیز به کاربران خود ارائه دهد.
مثال: نرم افزارهای لایک و فالوور گیر اینستاگرام
در ادامهی پاسخ به سوال API چیست میخواهیم دربارهی یکی دیگر از کاربردهای API ها صحبت کنیم. اگر کاربر اینستاگرام باشید حتما نرم افزارهای لایک و فالوور گیر اینستاگرام را مشاهده کردهاید.
برخی از این نرم افزارها به این صورت کار میکنند که شما در ازای هر لایک روی عکس یا فالو کردن افراد مختلف، امتیاز جذب میکنید و از آن امتیازها برای دریافت لایک و فالوور استفاده میکنید.
اما آیا برایتان این سوال پیش نیامده است که چطور از داخل یک نرم افزار دیگر، میتوانید عکس های اینستاگرام را لایک کنید و یا اکانت های مختلف را فالو کنید؟
روش کار این نرم افزارها دقیقا از طریق API ها میباشد. این نرم افزارها از API اینستاگرام استفاده میکنند و عکس ها و پرفایل کاربران را به شما نمایش میدهد. سپس وقتی شما یک عکس را لایک میکنید یا یک پروفایل را فالو میکنید، آنها این اطلاعات را به اینستاگرام ارسال میکنند که شما چه عکسی را لایک کردهاید و پروفایل کدام افراد را فالو کردهاید، و سپس این اطلاعات در پایگاه دادهی اینستاگرام ذخیره میشود.
تمام مراحل اینکار با استفاده از API ها انجام میشود. شما با کمک API اینستاگرام، اطلاعاتی (مثل عکس و پروفایل) را از اینستاگرام دریافت میکنید و اطلاعاتی را نیز به اینستاگرام ارسال میکنید.
مثال: نقشهی گوگل برای نرم افزارهای مختلف
بسیاری از اپلیکیشن ها هستند که برای کار کردن نیاز به نقشه دارند. برای مثال فرض کنید که شما میخواهید یک تاکسی اینترنتی راه اندازی کنید. برای انجام اینکار نیاز به یک نقشه دارید که موقعیت مکانی مسافر و راننده را روی آن مشخص کنید.
برای داشتن یک نقشهی کامل، شما ۲ راه دارید:
روش اول این است که یک نقشهی کامل را خودتان از اول بسازید. که این روش یک روش بسیار پرهزینه، زمانبر و کاملا غیرمنطقی میباشد.
روش دوم این است که از API های سایت های ارائه دهندهی نقشه استفاده کنید. برای مثال شما میتوانید از گوگل API نقشهاش را بگیرید و از نقشهی گوگل در سرویس خود استفاده کنید.
در واقع گوگل در گذشته یک نقشهی بسیار کامل و حرفهای نوشته است که دارای جزئیات بسیاری میباشد. و شما حالا به یک نقشه برای نرم افزار خود نیاز دارید. گوگل نیز یک API برای نقشهاش نوشته است که بتواند آنرا به افرادی که به نقشهاش نیاز دارند ارائه دهد. پس به این صورت شما میتوانید از API گوگل استفاده کنید، نرم افزار شما با نرم افزار گوگل صحبت کند و نهایتا بتوانید نقشهی گوگل را در سرویس خود داشته باشید و از آن استفاده کنید.
چطور میتوانیم از API ها استفاده کنیم؟
در ادامهی پاسخ به سوال API چیست میخواهیم ببینیم که چطور میتوانیم از API ها استفاده کنیم. برای استفاده از API شرکت ها و سرویس های مختلف، شما نیاز به دانش برنامه نویسی دارید. همانطور که گفتیم API ها به این دلیل ایجاد شدهاند که نرم افزارها بتوانند با هم صحبت کنند. برای اینکه نرم افزارها بتوانند با هم صحبت کنند شما از طریق کد باید این ارتباط را میان آنها ایجاد کنید.
در واقع API ها به این صورت کار میکنند که شما یک API را برای کار کردن انتخاب میکنید. مثلا میخواهید کاری کنید که کربران سایت/اپلیکیشن شما بتوانند از طریق حساب کاربریشان در گوگل وارد سایت/اپلیکیشن شما شوند.
مرحلهی بعد این است که API های گوگل و راهنماها و آموزش های آنرا مطالعه کنید. این راهنماها توسط خود شرکت های ارائه دهندهی API (در این مثال گوگل) ارائه میشود. به این صورت که در این راهنماها بصورت کامل توضیح داده شده است که روش استفاده از API های ما به چه صورت است.
سپس شما با استفاده از یک زبان برنامه نویسی، به آن API درخواست هایی را ارسال میکنید و آن API با توجه به درخواست های شما، برایتان پاسخ هایی را ارسال میکند که نهایتا باعث میشود بتوانید از آن API خاص استفاده کنید.
چرا یک شرکت یا کسب و کار API خود را منتشر میکند؟
تا الان متوجه شدیم که API چیست و چه کاربردی دارد. اما ممکن است این سوال برایتان پیش بیاید که چرا اصلا شرکت ها اقدام به ارائهی API های خود میکنند؟ انجام اینکار چه سودی برای آنها دارد؟ چه منفعتی از ارائهی API خود میبرند؟ سوال بسیار خوبی است و میخواهیم بدانیم که سود شرکت ها در ارائه API چیست خود چیست. شرکت ها به ۲ صورت کلی از ارائهی API خود سود میبرند.
سود اول: از سرویس آنها استفاده میشود
نکتهی اول در خصوص شرکت هایی که API میدهند این است که از سرویس آنها اضافه میشود و به تعداد کاربران آنها افزوده میشود. این مورد برای بسیاری از شرکت هایی که API ارائه میدهند یک امتیاز بسیار بزرگ است. برای مثال اگر شما روی سایتتان امکان ورود با گوگل یا فیسبوک را داشته باشید، باعث میشود که بصورت ناخودآگاه کاربران اقدام به استفاده از اکانت های خود در این دو سایت شوند و این برای این سایت ها یک سود بزرگ به حساب میآید.
سود دوم: API ها همیشه رایگان نیستند!
نکتهای که در خصوص API ها وجود دارد این است که آنها همیشه رایگان نیستند. در بسیاری از سرویس هایی که API ارائه میدهند، فقط تا یک حد خاصی رایگان است. برای مثال بسیاری از سرویس ها به شما میگویند که فقط تا ۱۰۰ درخواست (Request) به API ما در ماه رایگان است و اگر میخواهید بیش از این مقدار درخواست هایی به API آنها ارسال کنید، باید بصورت ماهیانه مبلغی را پرداخت کنید. البته API هایی هم وجود دارد که همیشه و در هر حالتی رایگان هستند. اما معمولا سایت ها و سرویس های بزرگ API خود را بصورت کاملا رایگان ارائه نمیدهند و از یک جایی به بعد از شما درخواست هزینههایی را دارند.
یک API خاص میخوام، چیکار کنم؟
ممکن است که شما نیاز به یک API خاص داشته باشید. برای مثال بخواهید یک کاری را انجام دهید که خودتان امکان انجام آنرا ندارید و حس میکنید که این سرویس/خدمت از طریق یک API قابل پیاده سازی است.
روشی که میتوانید API ها را پیدا کنید، فقط جستجو کردن است. برای مثال اگر نیاز به یک API آب و هوا برای زبان برنامه نویسی PHP دارید، کافیست عبارت PHP weather api را جستجو کنید تا بتوانید به آنها دسترسی داشته باشید. همچنین از لیست زیر نیز میتوانید استفاده کنید. اگر نمیدانید PHP چیست، این مقاله را مطالعه کنید.
لیستی از API های عمومی و بعضا رایگان
در سایت گیتهاب لیستی وجود دارد از API های عمومی که میتوانید از آنها استفاده کنید. این لیست شامل API های مختلف در دسته بندی های مختلفی است. هروقت احساس کردید که نیاز به یک API خاص دارید، حتما پیشنهاد میکنم که این لیست را نگاه کنید.
برای مشاهدهی این لیست اینجا کلیک کنید
جمع بندی
در این مطلب بصورت کامل دربارهی API ها صحبت کردیم و متوجه شدیم API چیست و چه کاربردهایی دارد. ازین پس شما میتوانید با کمک API ها امکانات مختلفی را به نرم افزارها و اپلیکیشن های خودتان اضافه کنید. API ها اگر درست و به جا استفاده شوند، واقعا میتوانند فوق العاده باشند.
تجربهی شما در کار با API ها چیست؟ از چه API هایی استفاده کردهاید؟ چه API خوبی میشناسید که بتوانید به ما معرفی کنید؟ ممنون میشویم اگر تجربیات و یا سوالات خودتان را برای ما بنویسید تا همه بتوانیم از آنها استفاده کنیم 🙂
درباره مهدی خسروی
۸ سال پیش که یادگیری برنامه نویسی رو آغاز کردم، با یک مشکل بزرگ مواجه شدم: کمبود منابع آموزشی حرفهای و کاربردی به زبان فارسی. به همین دلیل، بعد از چندین سال فعالیت حرفهای در زمینهی برنامه نویسی، تصمیم گرفتم دانستهها و تجربیات خودم را با شما عزیزان به اشتراک بگذارم. پیشنهاد میکنم به آدرس yadify.com/gifts حتما سر بزنید :)
نوشته های بیشتر از مهدی خسرویمطالب زیر را حتما مطالعه کنید
26 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
دیدگاهتان را بنویسید لغو پاسخ
این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش میشوند.
سلام مثل همیشه عالی، منتظر آموزش Js هستم
فقط یک کلمه .. ممنون !
سلام
این مطلبتون خیلی خوب و آموزنده بود.
فقط یک درخواست داشتم ازتون، اونم اینکه که طرز استفاده از APIهای سایت های دیگر رو به صورت فیلم آموزش بدین.
ممنون از سایت خوبتون
روان و موثر بود.
سلام امیر عزیز
پیشنهاد بسیار خوبیه. یادداشت کردم که در آینده حتما دربارهی اون صحبت کنیم. مرسی از شما
ممنون از توضیحات خوبتون.بسیار مفید واقع شد
خیلی خوب توضیح دادید ممنون
سلام.من تازه با این واژه api اشنا شدم. خیلی عالی توضیح دادین.کاملا متوجه شدم. من از سایت unsplash میخوام api بگیرم اگ توضیح بدین ممنون میشم.یا هرکس ک میدونه و کار کرده.تشکر
سلام
حتما در خصوص استفاده از API های سایت های مختلف مطالب جدیدی رو منتشر خواهم کرد. ممنونم از پیگیری شما
آقا همه چی خوب و تمیز هستش. فقط جان من موقع ویدیو درست کردن . زیاد تکون نخور و این که زیاد دست تکون نده 🙁
چشم:))) ممنونم از نظر و بازخورد شما. خیلی برای من ارزشمنده
واقعا عالی بود برای من کاملا روشن شد. کاش می تونستم سر کلاساتون بیام 🙂
مرسی از شما و خوشحالم که براتون مفید بوده
سلام
ممنون که انقدر روان و گیرا این مطالب رو آموزش میدید و مشکل های ما رو حل میکنید
با تشکر فراوان
عالی بود مرسی
بسیار عالی و کاربردی
سلام
ممنون از توضیحات بسیار کاملتون . نزدیک ۲۰ تا مقاله تو سایتهای محتلف خونده بودم ولی تقر چیزی دست گیرم نشده بود تا اینکه ویدیو شمارو دیدم.
بازم ممنون
سلام کیوان عزیز
خوشحالم که این مقاله براتون مفید بوده. ممنونم بابت نظرتون 🙂
سلام عالی توضیح دادین ممنون 🙂
ممنون عالی و کامل بود
دوست عزیز عالی بود
عالی بود عالی
ممنونم ازتون
ممنونم بابت سایت خوبتون 👍👍👍
سلام؛
فرض کنین ما یک وب سرویس داریم و قصد داریم API بسازیم و اون API رو به افراد بدیم تا از امکاناتش استفاده کنن…
میشه توضیحاتی رو ارائه بدین راجع به این مطلب؟
سلام مهدی عزیز
حتما سعی میکنم در خصوص این موضوع اموزش هایی رو قرار بدیم. یک مبحث مفصل هست
آقای خسروی عزیز آموزش پروژه محور شما در مورد Html &Css کمک بزرگی به من کرد از شما میخوام پروژه مشابهی رو در مورد جاوا اسکریپت انجام بدین!
حتما سینا جان. دربارهی جاوا اسکریپت آموزش های خیلی خوبی داریم که در حال آماده شدن هستن و بزودی ارائه میدیم.