API چیست و طراحی ربات با API و بدون API چه تفاوتی با هم دارند؟
فهرست مطالب
اگر کمی در فضای کامپیوتر، اینترنت و برنامهنویسی فعال باشید حتماً نام API به وفور به گوشتان خورده است و احتمالاً روزانه حتی بدون اینکه خودتان بدانید بارها از API استفاده کردهاید اما با این حال ممکن است هیچ ایدهای درباره API نداشته باشید و یا ندانید که دقیقاً به چه صورت عمل میکند. شاید هم در سایت کاربر مجازی درباره اینکه ما بدون استفاده از API رباتهایی طراحی کردهایم مطلبی دیده باشید اما این جمله هیچ معنی خاصی را در ذهن شما تداعی نکرده باشد. ما اینجا هستیم تا درباره همین موضوعات صحبت کنیم! در این مقاله با ما همراه باشید تا با زبانی ساده و روان، شما را با مفهوم API آشنا کنیم و از تفاوتهای طراحی ربات به کمک API و بدون استفاده از API برایتان صحبت کنیم...
API چیست؟
اجازه دهید پیش از اینکه به تعریف API بپردازیم کار را با ذکر یک مثال شروع کنیم!
اگر تاکنون از پنلهای ارسال پیامک (برای ارسال SMS) استفاده کرده باشید احتمالاً میدانید که برای ارسال حتی یک SMS در این پنلها نیاز است مراحل خاصی را طی نمایید؛ یعنی پس از ورود به پنل پیامک (با نام کاربری و رمز عبور خودتان) باید شماره موبایل کسی که میخواهید برای او SMS ارسال کنید را انتخاب یا وارد نمایید و سپس متن پیام دلخواهتان را تنظیم نموده و در نهایت دکمه ارسال را بزنید تا SMS به آن مخاطب ارسال شود.
حال زمانی را در نظر بگیرید که در یک اپلکیشین موبایلی یا در یک وبسایت ثبت نام میکنید؛ حتماً دیدهاید که اغلب بلافاصله بعد از ثبت نام، پیامک خوشامدگویی یا کد فعالسازی به گوشی شما (خط تلفن تان) ارسال میشود. آیا تاکنون با خود فکر کردهاید این پیامک که بلافاصله پس از لحظه ثبت نام، برایتان ارسال میشود طی چه فرآیندی به دست شما رسیده است؟ آیا صاحب وبسایت، نام و شماره موبایل شما را در لحظه وارد پنل پیامکی کرده و دکمه ارسال را فشرده است؟ قطعاً پاسخ منفی است زیرا این SMS بسیار سریعتر از طی کردن چنین فرایندی به دست شما میرسد. امکان ندارد که با هر ثبت نام جدید، شخصی نشسته باشد و با وارد کردن دستی نام و شماره موبایل کاربر جدید در پنل ارسال پیامک، SMS خوشامدگویی یا فعالسازی را برای او بفرستد. پس داستان پشت پرده این فرایند فوق سریع به چه صورت است؟!
بدیهی است که کل این فرایند به صورت اتوماتیک انجام میشود؛ یعنی هر بار که کاربر جدیدی در سایت یا اپلیکیشن ثبت نام میکند بلادرنگ از طرف آن سایت یا اپلیکیشن، یک درخواست (در پس زمینه) به پنل پیامکی مربوطه ارسال میشود تا یک پیامک خوشامدگویی برای کاربر جدید ارسال کند. اما این درخواست چگونه ارسال میشود و ارتباط بین وبسایت یا اپلیکیشن مبدأ با سامانه ارسال پیامک چگونه شکل میگیرد؟ اینجاست که API وارد عمل میشود و به کمک برنامهنویسان میآید!
API یک رابط برنامه نویسی بین نرم افزارها، اپلیکیشنها یا سایتها است. در مثال بالا فرض کنید ما برنامهنویس آن اپلیکیشنی هستیم که SMS بلادرنگ خوشامدگویی را ارسال میکند و قصد داریم با API سایتی که پنل پیامکی ارائه میدهد ارتباط برقرار کنیم. بطور معمول API ارسال پیامک چیزی شبیه به لینک زیر است:
https://payamak-sender.site/username=***&password=***&phonenumber=***&text=***
یعنی اگر مواردی که با سه ستاره (***) مشخص شده است را با اطلاعات صحیح پر کرده و لینک را فراخوانی نماییم، سایت ارسال پیامک متوجه میشود که ما قصد استفاده از API ارسال پیامک را داریم.
البته در نظر داشته باشید username و password که در بالا در نظر گرفته شده است در حقیقت نام کاربری و رمز عبور ما در پنل پیامکی هستند و به این دلیل نوشته میشوند که پنل پیامکی بتواند اکانت ما را شناسایی و هزینه ارسال پیامک را از حساب ما کسر کند.
به هر صورت فرض کنید یک کاربر جدید با مشخصات زیر در اپلکیشن ما ثبت نام میکند و ما لینک را به صورت زیر تکمیل مینماییم و برای سامانه پیامکی ارسال میکنیم.
آرش ابراهیمی
9371234567
https://payamak-sender.site/username=vUser&password=123&phonenumber=+989371234567&text=سلام، به سایت کاربر مجازی خوش آمدید
با ارسال این لینک به سامانه پیامکی، در حقیقت ما از API سامانه پیامکی کمک میگیریم تا درخواست ما را به برنامه اصلیِ ارسال پیام خودش ابلاغ کند تا در نتیجه سامانه پیامکی بطور خودکار SMS را با متن مورد نظر (در این مثال: سلام، به سایت کاربر مجازی خوش آمدید) به شماره 09371234567 ارسال نماید.
در حقیقت سامانه پیامکی، یک رابط برنامه نویسی (در مثال بالا: از طریق یک لینک خاص) در اختیار ما قرار داد که ما با بهرهبرداری صحیح از آن توانستیم به جای دستوردهی دستی در پنل سامانه، دستوردهی لینکی یا کُد محور را پیاده سازی نموده و SMS بلادرنگ بفرستیم. ما میتوانستیم ارسال پیامک خوشامدگویی را به صورت دستی در سامانه ارسال پیام انجام دهیم اما با استفاده از APIای که این سامانه ارائه داد این کار را به صورت خودکار و از راه دور مدیریت کردیم.
بطور خلاصه
API که مخفف Application Programming Interface میباشد، در حقیقت رابطی است که برنامهنویسان سایت X، در اختیار برنامهنویسان سایت Y قرار میدهند تا برنامهنویسان بتوانند از طریق این رابط، اجرای یک عملیات را از سایت X درخواست نمایند. در نهایت، پس از انجام عملیات درخواستی بوسیله سایت X، این رابط (یا همان API) نتیجه کار را (هر چه باشد) به برنامهنویسان سایت Y اعلام خواهد کرد.
پس API رابطی بین برنامهنویسان است!
شاید بیان یک نمونه ساده که همه روزه در اطراف خود مشاهده میکنیم و بی شباهت به API نیست در اینجا خالی از لطف نباشد:
- یک رستوران را در نظر بگیرید. فرض کنید شما به عنوان مشتری رستوران که درخواست غذا دارد، سیستم Y هستید و رستوران آشپزخانه به عنوان جایی که به درخواستها پاسخ میدهد سیستم X است. گارسون رستوران در نقش پیامرسان یا واسطی که درخواست شما یعنی سفارش غذایتان را به آشپزخانه میبرد و پاسخ یعنی غذای درخواستی را از آشپزخانه برای شما میآورد شبیه به API (رستوران) عمل میکند که شما را از مراجعه مستقیم به آشپزخانه رستوران و مواجهه با پیچیدگیهای آن نجات میدهد.
چند نکته درباره API
- همه برنامهها و وبسایتها مجهز به API نیستند. اگر سایت یا برنامهای، API ارائه دهد یعنی این امکان توسط برنامه نویسان آن برنامه یا سایت مهیا شده است که بتواند از بیرون (سایر برنامهها و وبسایتها) دستور بگیرد و آن دستور را در داخل محیط خود اجرا کند.
- همه API ها بصورت لینک نیستند (شبیه مثال ساده بالا نیستند) و گاهی نیاز به پیش نیازهای خاصی برای اجرا دارند. هر سایت یا برنامهای که API ارائه میکند معمولاً راهنما (یا Documentation) نحوه به کارگیری آن را نیز در اختیار برنامهنویسان قرار میدهد و برنامهنویسان باید با توجه به این راهنما از API ها استفاده نمایند.
- اغلب API ها، یک نام کاربری و رمز عبور (یا API Key) از کاربران درخواست میکنند تا اگر استفاده از API پولی باشد بتوانند مبلغی را که باید دریافت کنند از حساب مصرف کننده کم کنند.
در ادامه باز هم قصد داریم مثالهای بیشتری از کاربرد API برایتان ذکر کنیم تا بیش از پیش با API و کاربرد آن آشنا شوید.
چندین مثال روزمره از استفاده از API
شما هر روزه با APIها سر و کار دارید حتی اگر خودتان از آن بیخبر باشید! در ادامه به چند نمونه از این کاربردها میپردازیم. قطعاً تاکنون بارها به این موارد برخورد کردهاید.
مثال اول) گوشی هوشمند شما وضعیت آب و هوا را به صورت روزانه نشانتان میدهد.
در این مثال، گوشی هوشمند شما درخواست دریافت اطلاعات آب و هوا نظیر میزان دما، رطوبت و... را از طریق اینترنت به یک سایت یا اپ دیگر نظیر accuweather ارسال میکند. در پاسخ به این درخواست، اطلاعات از دیتابیس اپ یا سایت هواشناسی به دیوایس شما ارسال میشود و در نهایت روی صفحه گوشیتان به نمایش در میآید. در این مثال، ارتباط بین گوشی شما و برنامه پیشبینی آب و هوا از طریق
API آن برنامه ایجاد میشود.
مثال دوم) کاربران اپ تاکسی اینترنتی اوبر (Uber) از طریق Google Map به نقشۀ مسیرها دسترسی دارند.
طراحان اوبر به جای اینکه خودشان برای ایجاد نقشهای انحصاری متعلق به اوبر، وقت، انرژی و هزینه گزافی را صرف کنند آن را از برنامه گوگل مپ فراخوانی میکنند. در این مثال ارتباط بین اوبر و گوگل مپ از طریق API گوگل برقرار میشود.
مثال سوم) بسیاری از برنامهها اجازه میدهند کاربران با استفاده از اکانت گوگل خود لاگین کنند.
اکثر برنامهها و وبسایتها به کاربران اجازه میدهند به جای اینکه اطلاعات کاربری خود را به صورت مستقیم وارد کنند با استفاده از اکانت گوگل خود (به عنوان واسط) وارد آن برنامه یا وبسایت شوند. اینجا هم رد پایی از API مشاهده میکنید. درواقع هربار که کاربری دکمه «Login with Google» را میفشارد یک درخواست به API گوگل فرستاده میشود تا اطلاعات آن کاربر را چک کند و در صورت تأیید صحت اطلاعات کاربری گوگل، آن کاربر اجازه ورود به حسابش در آن برنامه یا وبسایت را پیدا کند.
احتمالاً تا اینجای مقاله متوجه شدهاید که API چیست، چگونه عمل میکند و چه کاربردی دارد. در ادامه قصد داریم شما را با تفاوتهای ساخت ربات با کمک API و بدون استفاده از API آشنا کنیم و به مزایا و معایب هر یک بپردازیم.
طراحی ربات با API و بدون API چه تفاوتهایی دارند؟
رباتها اغلب طراحی میشوند تا کاری را به صورت خودکار در یک دیوایس، نرمافزار یا وبسایت دیگر انجام دهند؛ مثلاً ربات ارسال پیام تلگرام ، پیام موردنظر کاربر را به لیستی از مخاطبین دلخواه او در نرمافزار تلگرام ارسال میکند یا ربات افزایش فالوور اینستاگرام ، کارهای متنوعی نظیر فالو، آنفالو، لایک، کامنت و.... را در سایت اینستاگرام انجام میدهد.
با توجه به توصیفی که از API در این مطلب ارائه کردیم به راحتی میتوانید حدس بزنید که طراحی ربات با کمک API به چه صورت خواهد بود. در این روش، ربات برای انجام امور مدنظر، به API سایت یا نرمافزار مقصد دستور میدهد و آن سایت یا نرمافزار خودش کار موردنظر ربات را اجرا میکند. در طراحی ربات با API، ربات، کاری به جز ارسال دستور به API انجام نمیدهد!
اگر برنامهنویس بخواهد بدون استفاده از API رباتی طراحی کند باید با استفاده از برنامهنویسی، حرکات انسانی را به گونهای شبیهسازی کند تا ربات خودش ماوس سیستم را حرکت دهد، کیبورد را تحت کنترل بگیرد، در صورت لزوم مرورگر را باز کند، روی دکمهها کلیک کند و بدین طریق، خود ربات کار موردنظر را انجام دهد.
برای مثال فرض کنید میخواهید با استفاده از ربات اینستاگرام، یک پست اینستاگرامی را لایک کنید.
رباتی که با API کار میکند این فرایند را به چه صورت انجام میدهد؟
برای این کار، ربات اینستاگرامی که با API اینستاگرام ارتباط میگیرد لینکی به API اینستاگرام ارسال میکند که شامل سه بخش است:
https://Instagram.com/username=***&password=***&postlink=***&action=like
- یوزرنیم و پسورد حساب اینستاگرام شما برای لاگین کردن به حساب اینستاگرامتان
- لینک پست موردنظر که میخواهید لایک شود
- اکشن موردنظر که در اینجا لایک کردن پست است
با دریافت چنین لینکی، خود اینستاگرام به حساب شما لاگین کرده و با اکانت شما پست موردنظرتان را لایک میکند.
برای رباتی که بدون API کار میکند این فرایند به چه صورت خواهد بود؟
رباتی که بدون ارتباط با API اینستاگرام کار میکند برای لایک کردن پست موردنظر کاربر باید مرورگر را باز کند، با استفاده از یوزرنیم و پسورد شما وارد حسابتان در اینستاگرام شود، لینک پست موردنظر را در مرورگر وارد کند تا صفحه پست باز شود و در نهایت ماوس را حرکت دهد و روی دکمه Like کلیک کند.
با مقایسه این دو روش برای طراحی ربات کاملاً واضح است که طراحی ربات با استفاده از API بسیار سادهتر است و هیچ یک از پیچیدگیهای طراحی ربات بدون کمک API را ندارد.
اما چرا با وجود روش ساده طراحی ربات با کمک API، برنامهنویسانی هستند که به سراغ ساخت ربات بدون استفاده از API میروند؟
همانطور که اشاره کردیم رباتهایی که با API کار میکنند خودشان کار موردنظر را انجام نمیدهند، بلکه فقط درخواست انجام کار را برای سایت مقصد ارسال میکنند و این خود سایت مقصد است که کار موردنظر را انجام میدهد و همین عیب بزرگ رباتهایی است که با API فعالیت میکنند زیرا کاملاً تحت کنترل سایت مقصد هستند، به راحتی شناسایی میشوند و از همین رو هر زمان که سایت مقصد اراده کند، میتواند جلوی کار این نوع رباتها را بگیرد و اجازه فعالیت به آنها ندهد؛ اتفاقی که برای همه رباتهای اینستاگرامی که با API اینستاگرام کار میکردند افتاد و اکنون همه آنها عملاً از کار افتادهاند زیرا اینستاگرام دیگر به آنها اجازه فعالیت نمیدهد.
در مقابل، رباتهایی که با API کار نمیکنند رفتار انسانی را با حرکت دادن ماوس شبیهسازی میکنند به همین دلیل هرگز توسط سایت مقصد شناسایی نمیشوند زیرا سایت مقصد اصولاً توانایی این را ندارد که این دسته از رباتها را از کاربر انسانی تشخیص دهد و جلوگیری از فعالیت کاربر انسانی در دستور کار هیچ سایت و برنامهای نیست.
به طور خلاصه
رباتهایی که با API کار میکنند خودشان کار موردنظر را انجام نمیدهند، بلکه فقط درخواست انجام کار را برای سایت مقصد ارسال میکنند و این خود سایت مقصد است که کار موردنظر را انجام میدهد و از آنجا که کاملاً تحت کنترل سایت مقصد هستند، به راحتی شناسایی میشوند. در مقابل، رباتهایی که با API کار نمیکنند رفتار انسانی را با حرکت دادن ماوس شبیهسازی میکنند به همین دلیل هرگز توسط سایت مقصد شناسایی نمیشوند.
در پایان
در این مطلب با مفهوم API آشنا شدید و چند نمونه از متداولترین کاربردهای API در زندگی روزمره خود را مشاهده کردید. در ادامه از تفاوتهای طراحی ربات با کمک API و بدون استفاده از API مطلع شدید و متوجه شدید خرید و استفاده از رباتهایی که بدون API کار میکنند چه مزایایی نسبت به رباتهایی دارد که با API کار میکنند.
امیدواریم که این مطلب برای شما مفید بوده و مفهوم و کاربرد API را برای شما باز کرده باشد. منتظر نظرات، سوالات و پیشنهادات شما در بخش کامنت این مقاله هستیم.