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

رابط برنامه نویسی اپلیکیشن (API):

واژه API از عبارت رابط برنامه نویسی اپلیکیشن (Application Programming Interface) گرفته شده است. می توانید API را مثل منوی رستوران ها در نظر بگیرید. این منو فهرست غذاهایی که می توانید سفارش دهید را در اختیارتان قرار می دهد و در کنار آن توضیحی از هر غذا را ارائه می کند. وقتی ایتم هایی که از این منو می خواهید را مشخص می کنید، آشپزخانه رستوران دست به کار می شود و سفارش شما را آماده می کند. شما دقیقا نمی دانید در این مکان چه می گذرد و سراشپز چگونه غذاهای سفارش داده شده را آماده می کند. اصلا نیازی هم به دانستن این موارد ندارید. همین امر درباره API ها هم صادق است. API عملیات متعددی را در خود فهرست کرده که توسعه دهنده می تواند از این عملیات استفاده کند. در کنار این عملیات توضیحاتی نوشته شده که نشان می دهد چه کاری برایتان انجام می دهد. توسعه دهنده مجبور نیست همه عملیات موجود را بشناسد و بداند چه کاری انجام می دهند. مثلا لازم نیست بداند سیستم عامل چگونه جعبه طراحی شده Save as را نشان کاربران می دهد.

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

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

API ها زندگی توسعه دهندگان را ساده تر از قبل می کند:

فرض کنید می خواهید اپلیکیشنی برای گوشی های ایفون تولید کنید. سیستم عامل IOS اپل API های زیادی در خود دارند و می توانند کارکرد این سیستم عامل را برای کاربران ساده تر سازند.

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

می توانید از API هایی همچون WKWebView استفاده کنید و مرورگر سفری (Safari) را در برنامه تان بگنجانید. اگر می خواهید از طریق گوشی آیفون تان تصویر یا ویدئویی تهیه کنید مجبور نیستید رابط دوربین را از همان ابتدا خودتان بنویسید. در این موقعیت ها می توانید از API دوربین استفاده کنید تا دوربین خود ایفون را در برنامه تان به کار ببرید. اگر API ها وجود نداشتند توسعه دهندگان وب به این سادگی نمی توانستند برنامه هایی که دوست داشتند را تولید کنند. در این شرایط آن ها مجبور می شدند نرم افزار خودشان را تولید کنند. اما توسعه دهندگان سیستم عامل اپل همه این کارهای سخت را به کمک API ها به راحتی انجام می دهند و می توانند راحت تر از قبل برنامه هایی که دوست دارند را بسازند و در اختیار کاربرانشان قرار دهند.

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

API ها می توانند دسترسی به منابع را کنترل کنند:

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

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

فایل سیستم هایی که از permission استفاده می کنند (در سیستم عامل هایی همچون ویندوز، مک و لینوکس) از API ها بهره می برند. یک اپلیکیشن معمولی نمی تواند دسترسی مستقیمی به اطلاعات خام هارد دیسک فیزیکی داشته باشد. در عوض برنامه باید از طریق API به این فایل ها دسترسی یابد.

API ها برای برقراری ارتباط بین سرویس ها به کار می روند:

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

همین امر در سرویس های انلاین زیادی دیده می شود. API هایی وجود دارد که به افراد کمک می کند متنی را از طریق گوگل ترجمه کنند یا کامنت های فیس بوک یا توییت هایشان را بر روی سایت بگنجانند.

استاندارد OAuth هم تعدادی API تعریف کرده که به شما اجازه می دهد در سایتی با سرویس دیگر ثبت نام کنید( مثلا می توانید از اکانت فیس بوک، گوگل یا توییترتان برای ثبت نام در سایت جدید بهره ببرید). API ها، همانند قراردادهای استانداردی هستند که به توسعه دهندگان کمک می کنند با سرویس خاصی ارتباط برقرار کنند.

سخن نهایی:

خوب همانطور که مشاهده کردید API ها کاربردهای زیادی دارند. اگر توسعه دهنده نیستید مجبور هم نیستید بدانید API دقیقا چه کاری انجام می دهد. اگر برنامه یا سرویسی را دیدید که برای سخت افزارها یا سرویس های متعدد API جدیدی ارائه کرده می توانید متوجه شوید که توسعه دهندگان از چنین قابلیتی استفاده خواهند کرد و از چنین مواردی به نفع خودشان بهره خواهند برد.