API چیست؟
در حوزه ی توسعه ی نرم افزار و برنامه نویسی، قطعا بارها واژه ی اختصاری API را شنیده اید.
و از خود سوال کرده اید که:
API چیست و کاربرد آن چیست؟
اِی پی آی مخفف Application Programming Interface معنای تحت اللفظی آن "رابط برنامه نویسی نرم افزار" است. درواقع همان UI که User Interface ی که در معنا و مفهوم با آن اشنا هستیم ، با این تفاوت که API در سطح برنامه نویسی نرم افزاری مطرح میشود.
به عنوان مثال شما فرض کنید که میخواهید در نرم افزاری که نوشته اید از نقشه گوگل استفاده کنید، نوشتن دوباره نقشه گوگل زمان بر هست ،پس ازAPI نقشه که خود گوگل آن را ارائه داده و در اختیار توسعه دهندگان نرم افزار قرار داده است، استفاده میکنیم.
به طور کلی فرض کنید که ما دو نرم افزار A و B راداریم که قرار هست یکسری اطلاعات از نرم افزار B به نرم افزار یا اپلیکیشن A انتقال پیدا کند، برای این منظور از API ها استفاده میکنیم .
کارکرد API به چه صورت است؟
در API ها ارتباط بین دو نرم افزار یا اپلیکیشن هست ، یعنی یکسری request و response بین دو نرم افزار داریم . و هر دو نرم افزار با ساختار و استراکچر دیتایی که در API رد و بدل میشود ، آشنا و آگاه هستند.
در API میدانیم که چه چیزی میخواهیم ارسال کنیم.
در API میدانیم که چه چیزی را پاسخ قرارهست بگیریم.
در API جواب قابل پیش بینی است.
گاهی به جای آنگه ما در جواب درخواستی که ارسال کردیم، کدهای زیادی از HTML را ریسپانس بگیریم، از APIاستفاده کرده و جواب شسته رفته و تمیز در قالب JSON و با فاکتورهای استاندارد و نرمال ،خروجی میگیرم.
انواع API چیست؟
API سخت افزاری: زمانی که شما در حال کار کردن با سیستمتان هستین و پرفورمنس سیستم به قدری بالا میرود و تولید گرمای بیشتری میکنید، فن سیستم با سرعت تندتر و بیشتری کار میکند. این سازوکار و اکشن و ری اکشن به دلیل API های سخت افزاری است.
API سیستمعاملی: منظور همان سازوکاری است که در اعمال داخل سیستم عامل انجام میدهیم، اعمالی نظری کپی و پیست کردن، نوشتن و ..
برای هر کدام نیاز به گزینه های مربوط به خودشان را داریم و از طرفی یکسری گزینه های ثابت که برای هر عملی در سیستم عامل نیاز است.
APIزبانهای برنامهنویسی: زبانی همچون جاوا یک هستهٔ اصلی دارد که شامل سینتکس ، چگونگی ساخت متغیر، دیتا تایپها و ... میشود اما در کنار آنها صدها کلاس مختلف توسط توسعهدهندگان این زبان عرضه شده که تحت عنوان Java API شناخته میشوند که فیچرهای تکمیلی این زبان را در دسترس دولوپرها قرار میدهند.
کیتهای توسعهٔ نرمافزار: Software Development Kit یا به اختصار SDK نیز نوعی دیگی از API است که توسط شرکتهای مختلفی همچون گوگل، فیسبوک و ... عرضه میشوند تا توسعه دهندگان با استفاده از این کیتها بتوانند اقدام به توسعهٔ نرمافزار کنند مانند Android SDK
API تحت وب: این نوع از API ها کاربرد بیشتر و متداولتری دارند و به کرات به گوش شما رسیده است!
به API های تحت وب اصطلاحا Web API میگویند به طور کلی به هر پروتکلی که از طریق شبکهٔ اینترنت و وب تعامل مابین اپلیکیشنهای مختلف را امکانپذیر سازد را API تحت وب یا Web API یا Web Service میگویند.
از طرفی میدانیم هر آنچه که نقل و انتقال در وب و اینترنت صورت میگیرد با HTTP یا HTTPS درارتباط است و لازم است درباره آن ها اطلعات کافی را داشته باشیم.
فاکتورهای موردنیاز در انتخاب یک API مناسب:
- در دسترس بودن دیتاها: APIیی انتخاب کنیم که دقیقا ما را به مقصد میرساند، اطلاعات کافی در اختیار ما بگذارد ، اطلاعات کمتر به ما ندهد وترجیحا اطلاعات بیشتر هم ندهد.
- Uptime بالایی داشته باشد: در دسترس بود یک سرویس و یا یک سیستم را آپ تایم میگوییم. API یی انتخاب کنیم که زمان بیشتری در دسترس باشد و قطعی و دیس کانکت حداقلی را داشته باشد! در هر زمانی آپ دیت و در دسترس و مورد استفاده باشد.
- مستند باشد: داکیومنت و مستندات آن را به طور کامل مطالعه نمایید تا اطمینان حاصل نمایید که تمامی نیازهای سیستم شما را پاسخگو می باشد. و نحوه کارکرد آن را نیز با دقت مطالعه نمایید.
- پشتیبانی خوب: در استفاده از هر سیستم و سرویسی اشکالاتی پیش می آید، مشکلات پیش بینی شده و نشده! پس ما نیاز داریم به پشتیبانی خوب و لحظه ای تا مشکلات و مسائل API ارائه شده را در کمترین زمان بررسی و حل نماید.
- هزینه : مثل هر نوع سرویس و خدماتی در سطح نت، API ها هم از نوع تجاری و رایگان هستند. دقت داشته باشید که API رایگان تا مرحله ای رایگان است و بعد از آن باید هزینه آن را پرداخت کنید. یا API های کاملا رایگان مطمئن و سیف هستند ؟ نیازمان را به طور کامل پاسخ میدهند؟ حتی برای API های تجاری و پولی نیز باید به این سوالات پاسخ دهیم !
درپست های بعدی درمودر انواع وب سرویس ها یا شایدم API ها صحبت خواهیم کرد :)