اگر بین برنامه نویس ها حضور پیدا کرده باشید می بیند اگر در زمینه برنامه نویسی صحبت کنند واژه API رو به شدت استفاده می کنند. اگر هم تازه وارد حوزه برنامه نویسی شده اید یکم درک و فهمیدن ماهیت API برای شما سخت و گنگ می باشد. در این مقاله می خواهم بگم API چیست؟ و چه کاربردی دارد و در انتها در مورد نحوه عملکرد APIها بیشتر صحبت کنم.
API مخفف واژگان Application Programming Interface به معنی «رابط های برنامه نویسی اپلیکیشن» می باشد.
API چیست؟
اگر بخواهم به صورت خودمونی بگم API چیست؟ باید بگم API این امکان رو در اختیار برنامه نویس قرار می دهد تا به برخی یا تمامی قابلیتهای یک نرمافزار دیگر دسترسی پیدا کند.
مثال: فرض کنیم نرمافزاری تحت عنوان الف وجود دارد که شرکت توسعهدهنده اش، این امکان را برای سایر توسعه دهندگان فراهم آورده تا از API آن استفاده کنند. نرم افزاری را هم که توسعه میدهیم نرمافزار ب نام دارد. حال نرمافزار الف در چارچوب خاصی به نرمافزار ب اجازه میدهد تا از اطلاعات آن استفاده کند.
بعد از اینکه گفتیم API چیست باید هنگام استفاده از API موارد زیر رو رعایت کنید:
۱- APIها ارائه دهنده ی دادهها ساختار یافته هستند. به عبارت دیگر، درخواست از طرف نرمافزار ب به نرمافزار الف در چارچوب یک فرمت استاندارد صورت می گیرد.
۲- APIها قابل پیشبینی هستند. به عبارت دیگر، درخواست هایی که به نرمافزار الف ارسال میشوند از پیش تعیین شده بوده لذا پاسخ به چنین درخواست هایی همواره مشخص و قابل پیشبینی خواهند بود.
۳- APIها مستند هستند. با توجه به این که APIها توسط شرکت های بزرگ برای سرویس های جهانی ایجاد می شوند، این APIها می بایست صد در صد مستند بوده تا توسعه دهندگانی که قصد استفاده از آنها را دارند، در استفاده از آنها دچار حداقل سردرگمی شوند و به راحتی از جزئیات API سر در بیاروند.
۴- APIها دارای یک API Key هستند. برای آن که به راحتی مشخص شود که Request یا «درخواست» از طرف چه سایت یا نرم افزاری است، ای پی آی ها یکی API Key یا «شناسه ی ای پی آی» در اختیار توسعه دهندگان قرار میدهند که در هر درخواست، این شناسه هم برای شرکت الف ارسال میشود که آن طریق، ماهیت اپلیکیشن شما برای آن سیستم مشخص شده و بر اساس توافقاتی که برای استفاده از ای پی آی صورت گرفته، خدمات را در اختیار شما قرار می دهد. علاوه بر این، شناسه ای که در اختیار شما (به عنوان یک توسعهدهنده) قرار می گیرد، مشخص میکند که شما هر چند وقت یک بار خواهید توانست برای نرمافزار الف درخواست ارسال کنید. به طور مثال، این API ممکن است که صرفاً در بازه های زمانی نیم ساعته به درخواست ها پاسخ گوید و در صورتی که اپلیکیشنی هر ده دقیقه یک بار، یک درخواست ارسال کند، API Key مشخص کننده ارسال کننده ی درخواست بوده و درخواست شما اصطلاحاً Ignore شده یا «نادیده» گرفته می شود.
نکته مهم: طراحی API از پایه کار نسبتا دشواری است که مراحلی پیچیده و بسیار تخصصی دارا است. برای آن که یک تصویر کلی از API داشته باشیم، می توان API را این گونه توصیف نمود که API مجموعه ای از دستورات و توابع است که به دیگر نرم افزارها امکان دسترسی به سرویس ها یا اطلاعات عرضه شده توسط شما را می دهد. به زبان ساده تر، برای آن که یک نرم افزار بتواند به اطلاعات شما دسترسی داشته باشد، آن ها را تغییر دهد و غیره، به یک واسطه به نام API نیاز دارد. عموماً APIها با توجه به برخی الگوها و استانداردها ساخته می شوند تا تمامی توسعه دهندگان از سراسر دنیا بتوانند از آن ها استفاده کنند و با توجه به تشخیص سازنده می توانند رایگان و یا پولی باشند.
چرا به API نیاز داریم؟
می توانیم جواب این سوال را با یک کلمه بدهیم : ارتباطات
شما ممکن است بپرسید چرا ارتباط بسیار مهم است. برای جواب به این سوال تصور کنید Notepad نمی توانست که نوشته ها از MS Word یا Google Chrome یا Firefox کپی و پیست (Copy & Paste) کند. تصور کنید باید برای هر نوع نیاز در هر زمانی تمامی متن را در نرم افزار دیگر تایپ می کردید. این فقط یک از مثال های مربوط به ارتباط بین نرم افزارها است و باید بدانیم که تمامی ارتباط ها از طریق API امکان پذیر است.
APIها بخش اصلی و مرکزی کمپانی هایی همچون گوگل، تلگرام، فیسبوک، توییتر و … هستند. تمامی این کمپانی ها، اطلاعات و سرویس های خود را توسط APIها در اختیار دیگر شرکت ها و توسعه دهندگان قرار می دهند تا در برنامه های آن ها مورد استفاده قرار گیرد. علاوه بر آن، بسته به میزان کیفیت و مقدار Access (اکسس یا دسترسی) که شما درخواست می دهید، قیمت آن APIها نیز متغیر خواهد بود.
به طور معمول پایین ترین سطح های اکسس با محدودترین امکانات به صورت رایگان عرضه می شوند. سازمان های دولتی در سراسر جهان، چه استانی و چه کشوری، اطلاعات خود را از طریق APIها در اختیار عموم قرار می دهند. البته برخی منتقدان درباره ی تأثیرگذاری و کاربرد این APIها و اطلاعات منتقل شده توسط آنان نظر چندان مثبتی ندارند، اما به هر حال این اقدام یک قدم کوچک در مسیری بزرگ محسوب می شود.
در یک نگاه کلی میتوان گفت که APIها زمینه را برای توسعهی Mashupها فراهم کردهاند. Mashupها برنامهها یا سرویسهای تحت وبی هستند که با استفاده از APIهای چند سرویس مختلف (مثل گوگل، فیسبوک، توئیتر..) عملکرد تمامی آنها را در قالب یک برنامه یا یک سرویس وب ارائه میکنند. دسترسی گستردهای که به واسطهی وجود APIها برای سرویسهای بزرگ حاصل شده است، تجربهی جدیدی برای کاربران وب به ارمغان آورده است.
البته APIها همواره هم مفید نبودهاند! شرکت توئیتر از یک سال پیش محدودیتهایی برای اپلیکیشنهای وابسته به APIهای این شرکت وضع کرده است. این تصمیم عملا برنامههای وابسته به توئیتر را بیاستفاده میکند و کاربران فقط امکان استفاده از برنامهها و وبسایت این شرکت را خواهند داشت و بدین ترتیب توئیتر میتواند مطمئن باشد که درآمدزایی مبتنی بر نمایش تبلیغات، به صورت موثر و متمرکزتری انجام میشود.
شرکتهای مختلفی برای کسب سود بیشتر، سرویسهای مختلف و APIهایی که اپلیکیشنهای شما به آنها وابسته هستند را از دسترس خارج کردهاند. شرکت گوگل طی تصمیماتی سرویسهایی مانند Google Health و اخیرا Google Reader را که گمان میرفت به سمت زیانده بودن پیش میروند از دسترس خارج کرد و این سرویسها هیچوقت دوباره راه اندازی نشدند. مسلما این تصمیمات برای کاربرانی که از اپلیکیشنهای وابسته استفاده میکنند ناخوشایند خواهد بود.
با وجود این مشکلات، اشتیاق روز افزون توسعهدهندگان برای استفاده از قابلیتهای APIها و محبوبیت اپلیکیشنهای وابسته به سرویسهای کاربردی درمیان کاربران بر کسی پوشیده نیست.
نکته مهم: چه بخواهید API خود را توسعه دهید و چه از سرویسی استفاده کنید که آن را برایتان بسازد، باید بدانید که طراحی و مدیریت APIها بر اساس استانداردهایی پیش می رود که باید آن ها را رعایت نمود. این استانداردها به گونه ای وضع شده اند که برای کسانی که از API استفاده می کنند، آسان و قابل فهم باشند و تا حد ممکن از بروز نکات منفی ذکر شده جلوگیری می کنند.
منابع استفاده شده: www.MakeUseOf.com و مقاله API چیست؟ از بهزاد مرادی