معرفی api
(معرفی apiبه صورت کلی)در حوزهٔ توسعهٔ نرمافزار به کرات واژهٔ API به گوش میخورد اما اکثر برنامهنویسان مبتدی خیلی با ماهیت این اصطلاح آشنا نیستند که در همین راستا در این پُست قصد داریم به طور مفصل با ماهیت و نحوهٔ عملکرد API آشنا شویم اما پیش از هر چیز نیاز به یک مقدمه داریم .
پیش از فراگیر شدن سیستمهای کامپیوتری در صنایع مختلف، انسان به عنوان کسی که قرار بود با نرمافزارهای کامپیوتری بیشترین تعامل را داشته باشد در نظر گرفته میشد به طوری که فارغ از کاری که نرمافزار انجام میداد، از ویرایش تصاویر گرفته تا ارسال ایمیل و غیره، انسان به عنوان موجودیتی که قرار بود با نرمافزار مذکور کار کند مرکز توجه قرار داشت به طوری که وی از طریق User Interface یا به اختصار UI به تعامل با نرمافزار میپرداخت (همانگونه که مثلاً امروزه از طریق رابط کاربری محیط دسکتاپ سیستمعامل، کارهای مختلفی را انجام میدهیم.)
به مرور زمان و پیشرفت فناوری، این نیاز احساس گردید تا به جای تعامل انسان با نرمافزار، خودِ نرمافزارها نیز بتوانند بدون دخالت انسان با یکدیگر تعامل داشته باشند و این در حالی بود که یک سیستم کامپیوتری بر خلاف انسان چشم و گوش نداشت تا با دیدن رابط کاربری بتواند مثلاً روی دکمهٔ خاصی کلیک کند تا دیتای مد نظرش را به دست آورد مضاف بر اینکه یک نرمافزار همچون انسانها نیازی نداشت تا برای ارتباط با نرمافزاری دیگر از یک رابط کاربری (UI) زیبا و کاربرپسند برخوردار باشد و اینجا بود که مفهوم API شکل گرفت.
Application Programming Interface چیست؟
API مخفف واژگان Application Programming Interface است که به صورت تحتالفظی میتوان آن را به «رابط برنامهنویسی نرمافزار» ترجمه کرد. به طور خلاصه، API همچون همان UI است با این تفاوت که به جای انسان، یک سیستم کامپیوتری قرار است با آن تعامل داشته باشد. در واقع، از آنجا که میتوان واژهٔ Interface را به «فصل مشترک» در فارسی ترجمه کرد، میتوان گفت که API فصل مشترکی مابین دو نرمافزار یا اپلیکیشن است (نیاز به توضیح است که در این بحث واژگانی همچون نرمافزار، اپلیکیشن، سیستم و … میتوانند به جای یکدیگر استفاده شوند و تفاوت معنایی خاصی ندارند.)
مثالی از دنیای واقعی به منظور درک بهتر مفهوم API
برای درک بهتر این موضوع، چیزی همچون الکتریسته را مد نظر قرار میدهیم بدین شکل که میتوان الکتریسته را به عنوان یک سرویس در نظر گرفت که از طریق پریز برق در اختیار ما قرار میگیرد تا انرژی لپتاپ، پنکه، جاروبرقی و هر چیزی که برای کار کردن نیاز به برق داشته باشد را تأمین کند.
اگر بخواهیم در این رابطه تشبیهی انجام دهیم، سرویسی همچون الکتریسته همچون همان سرویسی است که یک شرکت نرمافزاری همچون گوگل در اختیار ما قرار میدهد؛ مثلاً به ما اجازه میدهد تا به دیتای گوگلمپ دسترسی داشته باشیم. حال اپلیکیشن موبایلی که طراحی کردهایم هم نقشی همچون لپتاپ، پنکه یا جاروبرقی را دارد که در مثال قبل برای کار کردن نیاز به الکتریسته داشت اما در این حوزه این اپلیکیشن برای کار کردن نیاز به دیتای گوگلمپ دارد.
در حقیقت، در نظر گرفتن یکسری استاندارد در پریزهای برق باعث میگردد مصرفکننده (که در اینجا انسان نیست بلکه دیوایسهایی همچون لپتاپ، پنکه و جاروبرقی است) بدون هیچگونه دغدغهای برق مصرفی خود را تأمین کند. به طور کلی، از جمله مزایای این استاندارد میتوان به موارد زیر اشاره کرد:
– سازندهٔ وسائل خانگی فقط روی طراحی خود محصولات تمرکز میکنند و هیچ کاری به مسائل مربوط به تأمین برق ندارند.
– وسیلهٔ برقی به راحتی میتواند به پریزهای برق مختلف وصل شود.
– اگر یک وسیلهٔ برقی را از ایران به انگلستان ببریم، به سادگی با استفاده از یک تبدیل میتوان از منبع برق ۱۱۰ ولت آن کشور استفاده کرد و کماکان نیازی به ایجاد تغییر روی وسیلهٔ برقی نیست.
– وسیلهٔ برقی اصلاً نمیداند که نیروی برق دارد توسط نفت تولید میشود یا انرژی خورشیدی بلکه فقط مصرفکننده است.
– وسیلهٔ برقی اصلاً نیازی ندارد بداند که انرژی الکتریسته به چه شکلی به دستش رسیده است.
– همچنین پریز برق هم برایش هیچ فرقی نمیکند که یک لپتاپ متصل شده است یا پنکه بلکه فقط این وظیفه را دارا است تا به تأمین الکتریسته بپردازد.
حال همانطور که برای روشن کردن لپتاپ نیاز داریم تا دوشاخهٔ آداپتور آن را به پریز بزنیم و نیاز به توضیح نیست که ابعاد پریز و دوشاخه از یک استاندارد خاص تبعیت میکنند تا بتوانند با یکدیگر جفت شوند (مثلاً پریز برق دارای دو ورودی است و دوشاخ هم دو میله دارد همچنین پریز برق ۲۲۰ ولت عرضه میکند و دیوایس هم انتظار دارد برق ۲۲۰ ولت واردش شود نه ۱۱۰ ولت)، ما نیز برای اینکه اپلیکیشن موبایلمان بتواند با سرویس گوگل ارتباط برقرار سازد تا مثلاً بتوانیم داخل اپ خود از گوگلمپ استفاده نماییم، نیاز به چنین درگاهی داریم که API نام دارد که همچون مثال پریز و دوشاخه، اپلیکیشن موبایل ما و سرویس گوگلمپ هم باید از یکسری استاندارد برای ارتباط برقرار کردن با یکدیگر تبعیت کنند که در غیر این صورت چنین ارتباطی هرگز شکل نخواهد گرفت.
همانطور که برق وسائل الکتریکی منزلمان توسط شبکهٔ توزیع برق تأمین میگردد، اپلیکیشنهای مختلف هم برای دستیابی به دیتای مورد نیاز خود به شبکهٔ اینترنت نیاز دارند.مطالعه بیشتر