API (رابط برنامه نویسی برنامه کاربردی)
API همچون سفارش غذا در رستوران میباشد، شما از طریق منو که شامل لیستی از غذاها به همراه توضیح هرکدام میباشد یک کدام را سفارش میدهید، در آشپزخانه رستوران غذا حاضر میشود ولی شما دقیقا نمیدانید که رستوران چگونه غذا راآماده کرده و در واقع نیازی هم به دانستن آن ندارید.
بهطور مشابه، API لیستی ازعملیاتهایی که توسعهدهندگان از آنها استفاده میکنند را به همراه شرح فعالیت آنها ارائه میدهد. توسعهدهنده نیازی به دانستن چگونگی ساخت پنجره «Save As» توسط سیستمعامل ندارند، بلکه تنها دانستن وجود این امکان در برنامه برای آنها کافی است.
این که توسعهدهندگان، داده خودشان را به API میدهند تا نتیجه را دریافت کنند اشتباه است. این موضوع بیشتر شبیه یک رستوران خیالی است که غذا را با مواد اولیهای که شما با خود به رستوران بردهاید، برایتان آماده کند.
API ها به توسعهدهندگان کمک میکند تا با استفاده از مزایای پیادهسازی پلتفرم در زمان صرفهجویی کنند. بدین ترتیب نیاز کمتری به تولید کد دارند و همچنین سازگاری بیشتری با برنامههای کاربردی همان پلتفرم ایجاد میکند. همچنین API ها دسترسی به منابع سختافزاری و نرمافزاری را کنترل میکنند پس API بسیار دقیق است.
API ها زندگی را برای توسعهدهندگان سادهتر میکنند.
فرض کنید میخواهید یک Application را برای iPhone توسعه دهید. سیستمعامل iOS همانند دیگر سیستمعاملها تعداد زیادی API تولید میکند، تا کار را برای شما سادهتر کند.
مثلا زمانی که یک مرورگر را برای نمایش یک یا چند صفحه وب در برنامهتان جای میدهید، نیازی به برنامه نویسی یک مرورگر نیست. بلکه میتوان از WKWebView API برای قرار دادن مرورگر Safari در برنامه استفاده کرد.
یا اگر در برنامهتان قصد دارید با استفاده از دوربین موبایل عکس یا ویدیو تهیه کنید، نیازی به نوشتن رابط کاربری دوربین نیست. شما از API دوربین برای گنجاندن دوربین داخلی موبایل در برنامه خود استفاده میکنید. اگر API ها وجود نداشتند تا کار را ساده کنند، توسعهدهندگان Application باید با تفسیر وردی سخت افزار دوربین نرم افزار دوربین مخصوص خودشان را مینوشتند؛ اما توسعهدهندگان سیستمعامل Apple همه این دشواریها را انجام دادهاند، بنابراین توسعهدهندگان میتوانند تنها با استفاده از API دوربین، دوربین را در برنامهشان تعبیه کنند و به کارشان ادامه دهند. علاوه بر این، زمانی که Apple به توسعه API دوربین میپردازد، همه برنامههای کاربردی مبتنی بر آن بهطور خودکار از مزایای آن بهرهمند میشوند.
این مسئله برای همه پلتفرمها قابلتعمیم است. به طورمثال، برای ایجاد یک دیالوگ باکس در ویندوز API ای وجود دارد. یا در اندروید برای استفاده از قابلیت شناسایی با اثر انگشت یک API وجود دارد؛ بنابراین شما نیازی به بررسی حسگر اثرانگشت شرکتهای مختلف در اندروید ندارید. توسعهدهندگان نیاز به اختراع چیزی که قبلا ساخته شده ندارند.
API ها دسترسی به منابع را کنترل میکنند.
API ها اغلب نقش بزرگی در امنیت ایفا میکنند. زیرا از آنها برای کنترل دسترسی به سختافزارها و عملیات نرمافزاری که ممکن است هر برنامهای اجازه دسترسی به آنها را نداشته باشد، نیز استفاده میشود.
بهعنوانمثال، اگر شما تاکنون از وبسایتی بازدید کردهاید و پیغامی را در مرورگر مشاهده کردهاید که از شما در مورد مکان دقیقتان سؤال پرسیده است، آن وبسایت سعی در استفاده از geolocation API در مرورگر وب شما دارد. مرورگرها چنین API هایی را ارائه میدهند تا دسترسی به موقعیت شما را برای توسعهدهندگان وب سادهتر کنند. آنها تنها میپرسند «شما کجا هستید؟» و قسمت سخت کار را برای دسترسی به GPS یا شبکههای Wi-Fi نزدیک برای یافتن موقعیت فیزیکی شما، همگی بر عهده مرورگر است.
بدین ترتیب، مرورگرها این اطلاعات را از طریق یک API نیز ارائه میدهند زیرا کنترل دسترسی به آن امکانپذیر است.تنها راه ممکن که یک وبسایت بتواند به موقعیت دقیق فیزیکی کاربر دست یابد استفاده از API مکانی است؛ و زمانی که یک وبسایت درخواست دسترسی به موقعیت کاربر را دارد، کاربر میتواند درخواست او را بپذیرد یا رد کند. تنها راه دسترسی به منابع سختافزاری همانند حسگرهای GPS از طریق API است بنابراین مرورگر توانایی کنترل دسترسی به سختافزار و محدود نمودن آنچه برنامههای کاربردی میخواهند انجام دهند را دارد.
در سیستمعاملهای موبایلهای پیشرفته مانند iOS و اندروید قانون مشابهی استفاده میشود که برنامههای کاربردی دارای مجوزهایی هستند که میتوانند با کنترل دسترسی به API ها اجرایی شوند. بهعنوانمثال، اگر توسعهدهندهای تقاضای دسترسی به دوربین را از طریق API دوربین داشته باشد، شما میتوانید درخواست مجوز را رد کنید و آن Application دیگر راهی برای دسترسی به دوربین دستگاه شما نخواهد داشت.
فایل سیستمها که از مجوزها استفاده میکنند – همانطور که در ویندوزها، مک و لینوکس انجام میشود- دارای همان مجوزهایی هستند که توسط API ی فایل سیستم اجرا میشود. یک برنامه کاربردی معمولی دسترسی مستقیم به دیسک سخت فیزیکی خام ندارد. در عوض برنامه کاربردی از طریق یک API به فایلها دسترسی دارد.
از API ها برای برقراری ارتباط بین سرویسها استفاده میشود.
دلایل دیگری نیز برای استفاده از API ها وجود دارد. بهعنوانمثال، اگر تاکنون آبجکت Google Maps تعبیهشده در یک وبسایت را دیده باشید، میبینید که آن وبسایت از Google Maps API برای تعبیه نقشه استفاده میکند. اگر چنین API هایی وجود نداشت، توسعهدهندگان باید نقشههای خودشان را تولید کرده و دادههای آن را فراهم میکردند، فقط برای اینکه یک نقشه تعاملی در وبسایت قرار دهند. پس گوگل چنین API هایی را برای توسعهدهندگان وب ارائه داده است تا بتوانند با استفاده از آنها آبجکتهای پیچیده را بهدرستی در وبسایتشان قرار دهند.
بهعلاوه، به دلیل اینکه این یک API است، گوگل میتواند دسترسی به Google Maps را در وبسایتهای دیگر کنترل کند و تضمین کند که آن را بهدرستی نمایش میدهند نه اینکه آن را بهصورت یک قاب بههمریخته در وبسایتشان تعبیه کنند.
این موضوع شامل سرویسهای آنلاین مختلفی میشود. علاوه بر این API هایی دیگری نیز برای درخواست ترجمه متن از Google Translate یا تعبیه نظرات فیسبوک یا توییت هایی از Twitter وجود دارد.
نتیجه
API ها یک سری قراردادهای استاندارد هستند که تعیین میکنند توسعهدهندگان چگونه با یک سرویس و انواع خروجیهای آن تعامل داشته باشند. اگر مشاهده کردید که یک پلتفرم نرمافزاری یا سرویس، API های جدیدی برای سختافزارها یا سرویسهای مختلف اضافه کرده است، بدانید که بدین ترتیب توسعهدهندگان میتوانند راحتتر از مزایای چنین خصوصیاتی بهره ببرند.