تبلیغات

API چیست؟

API یا ای پی آی که مخفف عبارت Appluication Programming Interface و به معنای رابط برنامه نویسی اپلیکیشن می باشد.

این روز ها اگر در مباحث برنامه نویسی حضور داشته باشیم، این کلمه رو خیلی خواهیم دید و شاید واقعا ندانیم به چه معناست… رابط برنامه نویسی اپلیکیشن! یعنی چه؟

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


API به راحتی این امکان را در اختیار یک برنامه نویس قرار می‌دهد تا به‌ برخی یا تمامی قابلیت‌های یک نرم‌افزار دیگر دسترسی پیدا کند. برای مثال، فرض کنیم نرم‌افزاری تحت عنوان A وجود دارد که شرکت توسعه‌دهنده اش، این امکان را برای سایر توسعه دهندگان فراهم آورده تا از API آن استفاده کنند. نرم افزاری را هم که توسعه می‌دهیم نرم‌افزار B نام دارد. حال نرم‌افزار A در چارچوب خاصی به نرم‌افزار B اجازه می‌دهد تا از اطلاعات آن استفاده کند. در استفاده از API می بایست موارد زیر را حتماً مد نظر قرار داد.

◀️ API ها ارائه دهنده ی داده‌های ساختار یافته هستند. به عبارت دیگر، درخواست از طرف نرم‌افزار B به نرم‌افزار A در چارچوب یک فرمت استاندارد صورت می گیرد.

◀️ API ها قابل پیش‌بینی هستند. به عبارت دیگر، درخواست هایی که به نرم‌افزار A ارسال می‌شوند از پیش تعیین شده بوده لذا پاسخ به چنین درخواست هایی همواره مشخص و قابل پیش‌بینی خواهند بود.

◀️ API ها مستند هستند. با توجه به این که API ها توسط شرکت های بزرگ برای سرویس های جهانی ایجاد می شوند، این API ها می بایست صد در صد مستند بوده تا توسعه دهندگانی که قصد استفاده از آن‌ها را دارند، در استفاده از آن‌ ها دچار حداقل سردرگمی شوند و به راحتی از جزئیات API سر در بیاروند.

◀️ API ها دارای یک API Key هستند. برای آن که به راحتی مشخص شود که Request یا «درخواست» از طرف چه سایت یا نرم افزاری است، ای پی آی ها یکی API Key یا «شناسه ی ای پی آی» در اختیار توسعه دهندگان قرار می‌دهند که در هر درخواست، این شناسه هم برای شرکت A ارسال می‌شود که آن طریق، ماهیت اپلیکیشن شما برای آن سیستم مشخص شده و بر اساس توافقاتی که برای استفاده از ای پی آی صورت گرفته، خدمات را در اختیار شما قرار می دهد. علاوه بر این، شناسه ای که در اختیار شما -به عنوان یک توسعه‌دهنده- قرار می گیرد، مشخص می‌کند که شما هر چند وقت یک بار خواهید توانست برای نرم‌افزار A درخواست ارسال کنید. به طور مثال، این API ممکن است که صرفاً در بازه های زمانی نیم ساعته به درخواست ها پاسخ گوید و در صورتی که اپلیکیشنی هر ده دقیقه یک بار، یک درخواست ارسال کند، API Key مشخص کننده ارسال کننده ی درخواست بوده و درخواست شما اصطلاحاً Ignore شده یا «نادیده» گرفته می شود.


این نکته را همواره می بایست مد نظر قرار داد که طراحی API از پایه کار نسبتا دشواری است که مراحلی پیچیده و بسیار تخصصی دارا است. برای آن که یک تصویر کلی از API داشته باشیم، می توان API را این گونه توصیف نمود که API مجموعه ای از دستورات و توابع است که به دیگر نرم افزارها امکان دسترسی به سرویس ها یا اطلاعات عرضه شده توسط شما را می دهد. به زبان ساده تر، برای آن که یک نرم افزار بتواند به اطلاعات شما دسترسی داشته باشد، آن ها را تغییر دهد و غیره، به یک واسطه به نام API نیاز دارد. عموماً APIها با توجه به برخی الگوها و استانداردها ساخته می شوند تا تمامی توسعه دهندگان از سراسر دنیا بتوانند از آن ها استفاده کنند -و با توجه به تشخیص سازنده- می توانند رایگان و یا پولی باشند.


برای آن که بهتر با مفهوم API و نحوه ی استفاده ی آن آشنا شوید، از چند نمونه استفاده کنیم. APIها بخش اصلی و مرکزی کمپانی هایی همچون گوگل، تلگرام، فیسبوک، توییتر و … هستند. تمامی این کمپانی ها، اطلاعات و سرویس های خود را توسط APIها در اختیار دیگر شرکت ها و توسعه دهندگان قرار می دهند تا در برنامه های آن ها مورد استفاده قرار گیرد. علاوه بر آن، بسته به میزان کیفیت و مقدار Access (اکسس یا دسترسی) که شما درخواست می دهید، قیمت آن APIها نیز متغیر خواهد بود.


به طور معمول پایین ترین سطح های اکسس با محدودترین امکانات به صورت رایگان عرضه می شوند. سازمان های دولتی در سراسر جهان، چه استانی و چه کشوری، اطلاعات خود را از طریق APIها در اختیار عموم قرار می دهند. البته برخی منتقدان درباره ی تأثیرگذاری و کاربرد این APIها و اطلاعات منتقل شده توسط آنان نظر چندان مثبتی ندارند، اما به هر حال این اقدام یک قدم کوچک در مسیری بزرگ محسوب می شود.


حال این سوال پیش می آید که اگر کمپانی و تجارت شما عمدتاً به صورت آنلاین مدیریت می شود و یا مربوط به سرویس های مردمی و شهری است، آیا باید از APIها بهره بگیرید؟ APIها برای تجارت هایی که بر پایه ی اطلاعات و داده ها فعالیت می کنند، بسیار مفید بوده و حتی توصیه می شوند! فرض کنید که شرکت شما دارای اطلاعات آماری و حقوقی زیادی است و می خواهید نتایج چند ساله ی خود را با شرکا به اشتراک بگذارد. در این مواقع با آرشیو کردن اطلاعات در یک دیتابیس و ارائه ی API آن به همکاران خود، می توانید به راحتی به آن ها اجازه ی دسترسی به اطلاعات و استفاده از آن ها را بدهید. از APIها می توان در کمپانی های تولید سخت افزار نیز استفاده های فراوانی کرد؛ در حقیقت استفاده از APIها در چنین کمپانی هایی روز به روز در حال افزایش است. با وجود آن که نرم افزارها بر روی نحوه ی عملکرد سخت افزارها نظارت دارند، ایجاد امکان دسترسی به سخت افزار از طریق API به معنای بهبود عملکرد و افزایش طول عمر آن دیوایس ها خواهد بود.


اگر شما در حوزه ی کاری خود اولین کسی باشید که API مربوط به اطلاعات و داده ها را در اختیار دیگران می گذارد، پس قدرت و امکان اعمال آن APIها در محصولات رقبا را دارید. بدین ترتیب، آن ها مجبور به همکاری با شما خواهند بود. در برخی مواقع، اگر به کاربران خود این امکان را بدهید که با APIهای شما ابزار مخصوص خود را بسازند، با ابزارها و راهکارهایی آشنا خواهید شد که اگر خودتان قصد ساخت آنان را می داشتید، به دلیل عدم وجود زمان و یا خلاقیت، هرگز به آن ها دست نمی یافتید!


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


اعتماد کردن به مشتریان و ارائه ی امکاناتی بیش از آنچه که یک محصول ساده به دست می دهد، می تواند در میان مشتریان یک حس اعتماد و وفاداری عمیق ایجاد کند. این موضوع می تواند برگ برنده ی شما در مقایسه با رقبا باشد.


APIها همانند مبحث «سرویس های ابری» می مانند؛ خیلی ها صرفاً برای آن که به روز باشند از آن استفاده می کنند، بدون آن که کاربرد صحیح آن را بدانند. اما آیا شما نیز باید این کار را بکنید؟ آیا نیازی به استفاده از آن هست؟ توجه داشته باشید که طراحی و مدیریت APIها نیازمند نیروی انسانی متخصص و منابع بیشتر است. آیا در حال حاضر این موارد را در اختیار دارید؟


اگر همه چیز به درستی و با دقت پیش برود، APIها خطری امنیتی برای شما محسوب نمی شوند. اما هرچه راه های ارتباطی با نرم افزار خود را بیشتر کنید، راه های نفوذ به آن نیز افزایش می یابد و از آنجایی که APIها به برخی از امکانات نرم افزار دسترسی می دهند، در صورت استفاده ی نادرست و بسته به کاربردشان، می توانند خسارت های زیادی به بار آورند.


برای حل این قبیل مشکلات چندین راه حل وجود دارد: دسترسی به API را توسط یک سیستم شناسایی کاربر قدرتمند حفاظت کنید، حتی اگر آن API را به رایگان ارائه می کنید. سعی کنید سرویس API خود را بر روی سروری جداگانه و متفاوت از دیتابیسی که به آن متصل می شود، راه اندازی کنید. اگر به کاربران خود امکان اضافه کردن و یا ویرایش اطلاعات را نیز می دهید، خود را برای مقابله با حملات Injection آماده کنید. یکی دیگر از حملات سایبری خطرناک Denial of Service یا DOS نام دارد که نیاز دارید تا راهکارهای حفاظتی برای مقابله با این حملات را نیز رعایت کنید.


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


چرا به API نیاز داریم؟

می توانیم جواب این سوال را با یک کلمه بدهیم : ارتباطات. شما ممکن است بپرسید چرا ارتباط بسیار مهم است. برای جواب به این سوال تصور کنید Notepad نمی توانست که نوشته ها از MS Word یا Google Chrome یا Firefox کپی و پیست (Copy & Paste) کند. تصور کنید باید برای هر نوع نیاز در هر زمانی تمامی متن را در نرم افزار دیگر تایپ می کردید. این فقط یک از مثال های مربوط به ارتباط بین نرم افزارها است و باید بدانیم که تمامی ارتباط ها از طریق API امکان پذیر است.


API های محبوب که شما می توانید از آن ها استفاده کنید

API ها همه جا هستند. محبوب ترین API ها متعلق به رابط های کاربردی برنامه نویسی وب یا Web API مثل Google Maps API، Twitter API و Fickr API می باشد. این ها همه موارد نیستند. شما می توانید یک فهرست کامل و طبقه بندی شده از API ها در Programmable Web و WebMashup پیدا کنید. در سایت های گفته شده می توانید سطح علاقه کاربران و همچنین محبوبیت API ها و خدماتی که توسط API ارائه شده اند و یا از API استفاده می کنند را ببینید.

شما در واقع از API بستگی به نیازهایتان و سطح تخصص تان استفاده می کنید. شما ممکن است بخواهید یک سرویس بزرگ در اینترنت ایجاد کنید؛ در هر زمینه که شما یک برنامه برای وب لازم داشته باشید باید از زبان های وب مثل PHP, ASP.NET, Java یا Python استفاده کنید. یک شروع خوب بازدید کردن از صفحه رسمی API سرویس مورد نظرتان است. همچنین می توانید به دنبال کتابخانه های دیگران که به زبان مورد نظر شما نوشته شده است هم بگردید. معمولا این کتابخانه ها کار شما را آسان تر و سریعتر می کنند. برای مثال توییتر تعدادی از این کتابخانه ها را در API ویکی خود ارائه می دهد. شما همچنین می توانید آموزش ها، اسناد رسمی و بهترین شیوه ها را در این صفحات پیدا کنید.

API ها برای مدت زیادی به یک یا صورت های دیگری وجود داشته اند. اولین ارتباط بین برنامه ها ممکن است دقیقا بر اساس یک سند رسمی API نبوده؛ اما امروزه آن ها بخش مهی از برنامه شما به خصوص اگر در رابطه با وب باشد، هستند.

آیا تا کنون شما از API ساخته اید و یا از API استفاده کرده اید؟ نظرات و تجربه های خود را به ما بگویید.


مثال:

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


منبع: gooyait ,sokanacademy, makeuseof , wikipedia

تبلیغات
4 نظر
کانال تلگرام فول کده
تبلیغات

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

هادی اکبرزاده

[ مدیر فول کده ]

علاقه‌مند به اشتراک گذاری اطلاعات در هر زمینه‌ای / برنامه‌نویس / مدیر فول کده

پاسخ دهید

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

نظرات ثبت شده 4 دیدگاه