برنامه نویسی, وب سایت

API چیست؟ رابط برنامه‌ نویسی نرم‌ افزار کاربردی

API مخفف Application Programming Interface به معنای رابط برنامه نویسی نرم افزار کاربردی است که علاقه مندان به برنامه نویسی بارها با واژه API مواجه شده اند، در این مقاله داتیس نتورک می خواهیم به API بپردازیم و با بیان مثال هایی از کاربردش شما را با این مفهوم آشنا کنیم، همراه ما باشید.

API چیست؟ رابط برنامه‌ نویسی نرم‌ افزار کاربردی

اگر بخواهیم به سوال API چیست پاسخ دهیم خیلی خوب است که با یک مقدمه شروع کنیم، چند مثال بزنیم و بعد بصورت خاص درباره‌ی API صحبت کنیم.

فرض کنید که شما اتومبیل شما دچار یک مشکل میشود و شما به یک مکانیک مراجعه میکنید. مکانیک برای اینکه بتواند ماشین شما را تعمیر کند، نیاز به یک سری وسایل دارد، برای مثال شما را برای خرید لنت ترمز به یک مغازه میفرستد، برای خرید روغن موتور به یک مغازه‌ی دیگر و… . در واقع کسب و کارهای دیگر به آن مکانیک کمک میکنند که کار خودش را بهتر انجام دهد و تمام کند.

یا به عنوان مثال دیگر فرض کنید که شما صاحب یک وبسایت هستید و میخواهید در منوی کناری سایت‌تان اطلاعات آب و هوا و یا اوقات شرعی را نمایش دهید.

نکته‌ای که وجود دارد این است که خود شما بصورت مستقیم به این اطلاعات دسترسی ندارید و نمیدانید که آب و هوا در شهرهای مختلف ایران به چه صورت است.

برای داشتن این امکان در سایت‌تان، شما از سایت دیگری استفاده میکنید و این امکان را در سایت خود نمایش میدهید.

در واقع یک سایت دیگر به شما کمک میکند و اطلاعات آب و هوا، اوقات شرعی و… را به شما میدهد که شما در سایت‌ خود نمایش دهید.

در هر دوی این مثال ها، جایی وجود داشت که به شما کمک میکرد که کاری که میخواهید انجام دهید را بهتر انجام دهید و در واقع به شما امکاناتی را میداد.

همانطور که دو انسان میتوانند با هم صحبت کنند، مثلا آن مکانیک به شما میگوید که «برو و از فلان مغازه یک لنت ترمز با برند x بخر»، نرم افزارها و سیستم ها نیز میتوانند باهم صحبت کنند و باهم تعامل داشته باشند.

به عنوان مثال شما از یک جای دیگر میخواهید که به شما این امکان را بدهد که اوقات شرعی یا وضعیت آب و هوا را در سایت‌تان نمایش دهد.

نرم افزارها برای اینکه بتوانند با هم صحبت کنند و ارتباط داشته باشند، نیاز به یک پل ارتباطی دارند. پل ارتباطی میان نرم افزارهای مختلف، API می‌باشد.

API چیست؟

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

    فرض کنید که شما میخواهید یک برنامه‌ای بنویسید که در آن نیاز به یک سری اطلاعات/امکانات خاص دارید که خودتان بصورت مستقیم امکان دسترسی به این اطلاعات/امکانات را ندارید. در این صورت میتوانید این اطلاعات/امکانات را از یک نرم افزار دیگر بصورت API دریافت کنید.

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

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

در ادامه میخواهیم مثال هایی بزنیم که مفهوم ای پی آی را برای شما بصورت کامل شفاف کند و دقیقا متوجه شوید که رابط برنامه نویسی نرم افزار کاربردی  چیست.

مثال های واقعی از API

برای پاسخ دادن به سوال ای پی آی چیست میتوانیم ساعت ها توضیحات بسیار تخصصی بدهیم.

ولی روش بهتر این است که مثال‌های کاملا واقعی داشته باشیم که دقیقا متوجه شویم که API چیست و چه کاربردهایی دارد. در زیر مثال هایی از API میزنیم که بهتر بتوانید متوجه این موضوع شوید.

مثال: نرم افزارهای لایک و فالوور گیر اینستاگرام

در ادامه‌ی پاسخ به سوال API چیست میخواهیم درباره‌ی یکی از کاربردهای ای پی آی ها صحبت کنیم.

اگر کاربر اینستاگرام باشید حتما نرم افزارهای لایک و فالوور گیر اینستاگرام را مشاهده کرده‌اید.

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

اما آیا برایتان این سوال پیش نیامده است که چطور از داخل یک نرم افزار دیگر، میتوانید عکس های اینستاگرام را لایک کنید و یا اکانت های مختلف را فالو کنید؟

روش کار این نرم افزارها دقیقا از طریق API ها می‌باشد.

این نرم افزارها از API اینستاگرام استفاده میکنند و عکس ها و پرفایل کاربران را به شما نمایش میدهد.

سپس وقتی شما یک عکس را لایک میکنید یا یک پروفایل را فالو میکنید، آن‌ها این اطلاعات را به اینستاگرام ارسال میکنند که شما چه عکسی را لایک کرده‌اید و پروفایل کدام افراد را فالو کرده‌اید، و سپس این اطلاعات در پایگاه داده‌ی اینستاگرام ذخیره‌ میشود.

تمام مراحل اینکار با استفاده از API ها انجام میشود.

شما با کمک رابط برنامه نویسی نرم افزار کاربردی اینستاگرام، اطلاعاتی (مثل عکس و پروفایل) را از اینستاگرام دریافت میکنید و اطلاعاتی را نیز به اینستاگرام ارسال میکنید.

مثال: عکس های تصادفی با موضوعات مختلف

فرض کنید که شما میخواهید یک سایتی داشته باشید که بتوانید عکس های مختلف تصادفی (Random) به کاربران‌تان نشان دهید.

برای انجام اینکار شما میتوانید از سایت هایی که ای پی آی عکس تصادفی میدهند استفاده کنید.

این سایت ها به این صورت عمل میکنند که شما یک درخواست به API آن سایت ها میدهید و آن سایت ها نیز با توجه به درخواست شما،‌ یک پاسخ به آن ارسال میکنند.

مثلا شما میگویید که یک عکس اتفاقی می‌خواهم، و آن سایت نیز در پاسخ به درخواست شما، آدرس یک عکس را برایتان ارسال میکند.

مثال: ورود با گوگل یا فیسبوک

حتما در بسیاری از سایت ها دیده‌اید که هنگام ورود به آن سایت، بجای ثبت نام مستقیم، میتوانید از طریق حساب کاربری‌تان در گوگل یا فیسبوک اقدام به وارد شدن به آن سایت کنید.

هنگامی که سایت هایی را میبینید که امکان ورود از طریق اکانت گوگل، فیسبوک و… دارند، میتوانید متوجه این شوید که این سایت با استفاده از API اینکار را انجام داده‌اند.

به این صورت که برنامه نویسان این سایت، از طریق استفاده از ای پی آی های گوگل و فیسبوک، این امکان را ایجاد کرده‌اند که افرادی که روی دکمه‌ی «ورود با گوگل» کلیک میکنند، نام آن‌ها از گوگل گرفته شود که بتوانند با نام آن کاربر، یک حساب کاربری در آن سایت داشته باشد.

اگر بخواهیم دقیق تر توضیح دهیم، فرض کنید که سایت abc.com میخواهد امکان ورود با گوگل یا فیسبوک را به سایت خود اضافه کند.

در این صورت،‌وقتی که کاربر روی یکی از این دکمه‌ها، مثلا ورود با گوگل کلیک میکند، سایت abc.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 ارائه میدهند، فقط تا یک حد خاصی رایگان است.

برای مثال بسیاری از سرویس ها به شما میگویند که فقط تا ۱۰۰ درخواست (Request) به API ما در ماه رایگان است و اگر میخواهید بیش از این مقدار درخواست هایی به API آن‌ها ارسال کنید،‌ باید بصورت ماهیانه مبلغی را پرداخت کنید.

البته API هایی هم وجود دارد که همیشه و در هر حالتی رایگان هستند.

اما معمولا سایت ها و سرویس های بزرگ رابط برنامه نویسی نرم افزار کاربردی خود را بصورت کاملا رایگان ارائه نمیدهند و از یک جایی به بعد از شما درخواست هزینه‌هایی را دارند.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *