مفهوم و ویژگی های API چیست
- 1399/10/21
- 658
- برنامه نویسی
API چیست و چرا به آن نیاز داریم ؟
شاید تا کنون از خود پرسیده باشید که برای راه اندازی یک سامانه تحت وب یا در وسعت محدودتر یک فروشگاه اینترنتی یا یک وب سایت کوچک از چه تکنولوژی هایی استفاده میشود؟ و اینکه چگونه میتوانیم از یک Smart Phone براحتی از یک فروشگاه اینترنتی خرید کنیم و یا اینکه چگونه میتوانیم براحتی از نرم افزارهایی همچون اسنپ تاکسی آنلاین درخواست کنیم؟ پشت پرده مدیریت درخواست های ما چگونه است؟ چگونه میتوانیم از یک اسمارت فون به یک وب اپلیکیشن درخواست بفرستیم؟
پاسخ تمام سوالات شما را در این مقاله خواهیم داد و شما را با ویژگی های عجیب API آشنا خواهیم کرد.
API مفهومی نا آشنا و گنگ برای افرادی که هنوز به بخش برنامه نویسی و توسعه نرم افزار وارد نشده اند و از کاربردهای آن اطلاعی ندارند، است ولی API یک کلمه کلیدی روزمره برای کسی است که تصمیم به توسعه یا برنامه نویسی تحت وب بگیرد.
مفهوم API چیست؟
API برگرفته از (Application Programming Interface) یا همان رابط برنامهنویسی اپلیکیشن می باشد.میتوان گفت API یک User Interface هست ، ولی تفاوت مهمی که وجود دارد به جای User یک سیستم جایگزین شده و ارتباط بین دو کامپیوتر شکل میگیرد.در حالت کلی میتوان گفت API این امکان را به ما میدهد تا بین دو نرم افزار یا دو اپلیکیشن ارتباط برقرار کنیم و ارسال داده در بستر این ارتباط را فراهم میکند.
اگر بخواهیم API را به زبان ساده بیان کنیم، زبان مشترک دو اپلیکیشن می باشد و میان آنها ارتباط برقرار میکند برای مثال یک فروشگاه اینترنتی آنلاین را در نظر بگیرید که هم دارای یک وب اپلیکیشن می باشد و هم دارای یک App برای اندروید. همانطورکه میدانیم برای طراحی app اندروید نیاز هست تا از زبان جاوا و فریمورک اندورید استفاده کنیم در حالیکه app تحت وب با فریمورکی مانند ASP Core طراحی شده است پس دو اپلیکیشن با فریمورک های مختلف داریم ولی هدف این است که کاربر هم از سمت وب و هم از سمت اندروید از اپلیکیشن ما استفاده کند در این حالت web service ما که همان فریمورک ASP است باید سرویس ارائه دهد و API نویسی شود و این API را در اختیار اپ اندورید قرار می دهد تا درخواست ها از این طریق به Back-end یا همان Server-side ما ارسال شود.در این پروتکل داده ها غالبا از طریق Json ارسال میشوند.
دو قسمت بسیار مهم در بحث API وجود دارد
1) شرکت ها و برنامه های تحت وب ارائه دهنده API ها
2) گیرنده API ها یا همان Client
برای مثال شرکت آمازون را در نظر بگیرید این شرکت مجموعه ای از API های خود را جهت دسترسی به ویژگی های وب سایت آمازون درون یک پکیج جذاب با نام Amazon APPs قرار داده است. از طریق این API ها که متشکل از چندین توابع کدنویسی شده هستند میتوان به داده های این وب سایت بزرگ دسترسی پیدا کرد و از آنها استفاده کرد برای مثال میتوانیم کالاها و قیمت های بروز محصولات را از طریق API دریافت کنیم و یک وب سایت واسط برای خرید از امازون طراحی کنیم.
انواع API
ما می توانیم چندین نوع API ایجاد و استفاده کنیم که تعدادی از آنها را در این مقاله معرفی میکنیم:
1) API مربوط به سیستم عامل : این نوع API ها واسط بین سیستم عامل و افراد توسعه دهنده Application ها قرار دارند و اصطلاحا به آنها لایهای انتزاعی یا (Layer of Abstraction) میگویند.
برای مثال یک Developer دات نت را در نظر بگیرید برای طراحی اپلیکیشن تحت ویندوز باید از خود سیستم عامل ویندوز API بگیرد و این امکان را شرکت مایکروسافت فراهم نموده زیرا اپلیکیشن طراحی شده هنگام اجرا از پنجره های ویندوز استفاده میکند اگر این API وجود نداشت توسعه دهنده باید به صورت صفر تا صد یک پنجره ویندوز را کدنویسی میکرد که یک کار بسیار زمانبر و پیچیده می باشد.
2) API مربوط به سخت افزارها : این نوع API ها جهت ایجاد ارتباط بین سخت افزارهای یک سیستم مورد استفاده قرار میگیرند و وظایفی همچون انتقال دستور و ترجمه دستورها، به زبان سخت افزار را انجام میدهند و در Device هایی مانند Smart Phones و تلویزیون و لپ تاپ ها از این API ها استفاده میشود به عنوان مثال سیستم خنک کننده ی CPU از این قابلیت استفاده میکند.
3) (Software Development Kit) : کیت های توسعه نرم افزار یکی دیگر از API هایی هستند که توسط شرکت هایی همچون مایکروسافت و گوگل عرضه میشوند برای مثال میتوان به توسعه نرم افزار در محیط زامارین اشاره کرد که ساختار اصلی آن با زبان سی شارپ نوشته میشود و میتوان با استفاده از SDK ها خروجی apk یا اندورید اپلیکیشن تولید کرد.
4) Web API : کاربردی ترین و مهم ترین API ها ، ای پی آی هایی هستند که در بستر وب مورد استفاده قرار میگیرند بطوریکه تعامل بین اپلیکیشن های مختلف را فراهم میسازند و انتقال داده ها بین وب اپلیکیشن ها از این طریق صورت میگیرد و توسعه دهندگان برای صرفه جویی در زمان و انرژی خود از API هایی که وب سایت ها یا شرکت ها به صورت آماده ارائه میدهند استفاده میکنند.برای مثال شما یک وب سایت فروشگاهی راه اندازی کرده اید و عملیاتی همچون خرید و فروش کالا به قیمت دلار در فروشگاه شما انجام میگیرد برای نمایش قیمت ارز به صورت آنلاین دو راه بیشتر وجود ندارد یا باید به صورت صفر تا صد کدنویسی کنید و یک کاربر جهت بروز کردن قیمت ارز ها همیشه در دسترس باشد یا اینکه از API هایی که وجود دارند استفاده کنید و قیمت ارزها به صورت آنلاین و اتوماتیک برای شما نمایش داده شود. برای مثال API وب سایت www.tgju.org را در این بخش میتوان استفاده نمود.
API ها به سه حالت قابل دسترسی هستند!
1) API هایی که به صورت پولی هستند و برای استفاده از آنها باید هزینه آن به شرکت یا وب سایت ارائه دهنده پرداخت شود تا بتوانیم از امکانات آن استفاده کنیم
2) API هایی به صورت متن باز و رایگان هستند و به سادگی در بستر وب پیدا میشوند و براحتی میتوان از امکانات آنها استفاده کرد ولی زیاد قابل اعتماد نیستند و امکان دارد یک بدافزار یا یک کد مخرب باشد و به اطلاعات سایت شما دسترسی پیدا کند.
3) API هایی که به صورت Internal و داخل یک سازمان بر اساس Syntax و قواعد خاصی ساخته میشوند و فقط در خود سازمان مورد استفاده قرار میگیرند و جنبه خصوصی دارند.