API چیست؟ قسمت اول
محمدجواد مرادی
برنامه نویسی
1399/7/27
8 دقیقه
احتمالا تاکنون حداقل یک بار نام API به گوشتان خورده است. همه ی ما دائما در حال استفاده از API های مختلف هستیم؛ چک کردن وضعیت آب و هوا، مشاهده ی وضعیت ترافیک جاده ها، انتقال وجه و یا اگر برنامه نویس باشید استفاده از کتابخانه ها در فرآیند توسعه ی نرم افزار و... همه ی اینها مصادیق استفاده از API ها هستند.

API چیست؟

تصور کنید شما به عنوان برنامه نویس، نرم افزاری را با قابلیت های مشخصی توسعه داده اید، اکنون میخواهید به دیگر برنامه نویسان اجازه دهید تا از قابلیت های نرم افزار شما استفاده کنند؛ برای این منظور شما راه هایی را برای برقراری ارتباط بین نرم افزار خود و نرم افزار مقصد مشخص میکنید، این راه ها که متصل کننده ی قابلیت های نرم افزار شما به نرم افزار مقصد است و امکان استفاده از آنها را برای دیگران میسر میکند، API نام دارند. کلمه ی API کوتاه شده ی عبارت Application Programming Interface ، به معنی رابط برنامه نویسی است .
API is a BridgeAPI: پل ارتباطی ماشین-ماشین و ماشین-انسان
برای نمایش شمای کلی از سازوکار یک API میتوان فرآیند چک کردن وضعیت آب و هوا را مورد بررسی قرار داد.
شما برنامه ای را باز میکنید، تلفن شما موقعیت مکانی شما را از طریق یک API مشخص بر بستر اینترنت به سمت سرور ارسال میکند، هنگامی که داده ی ارسالی شما (موقعیت مکانی) به مقصد رسید، در آنجا فرآیند های مربوط به تشخیص وضعیت آب و هوا ی منطقه ی شما انجام میشود و نتیجه ی کار به صورت یک داده ی قابل خواندن توسط برنامه ی آب و هوا ی شما، از سرور به سمت شما ارسال میشود. این تمام چیزی است که یک API باید قادر به انجام آن باشد؛ دریافت داده از کاربر، تحویل به قسمت پردازش داده، تحویل گرفتن نتیجه ی پردازش و رساندن آن به کاربر.

یک لایه امنیتی

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

انواع API

رابط های برنامه نویسی میتوانند به صورت های زیر وجود داشته باشند :
1- سیستم عامل - نرم افزار
2- نرم افزار - نرم افزار
3- کتابخانه - نرم افزار ( که حالت ویژه تری از نرم افزار - نرم افزار است )
4- سخت افزار - نرم افزار
1- سیستم عامل - نرم افزار
برای این حالت میتوان به ویندوز اشاره کرد، مایکروسافت مجموعه API هایی از سیستم عامل ویندوز را تحت نام winApi در اختیار توسعه دهندگان قرار میدهد تا با استفاده از انها بتوانند به قابلیت های سیستم عامل ویندوز دسترسی داشته باشند و از آنها استفاده کنند. برای نمونه نرم افزار تلگرام دسکتاپ برای نوتیفیکیشن ها از winApi استفاده میکند تا بتواند در محیط ویندوز نوتیفیکیشنی را نمایش دهد.
2- نرم افزار - نرم افزار
مهم ترین حالت این مدل API ها، ارتباط دو نرم افزار بر بستر اینترنت است که با نام Web-API شناخته میشود، به این صورت که دو نرم افزار، یکی به عنوان سرور و دیگری به عنوان کاربر، بر بستر اینترنت با استفاده از API های نرم افزار سمت سرور به یک دیگر متصل میشوند ( به طور کلی آن نرم افزاری را که ارائه‌ دهنده ی API است ،سرور و دیگری را که استفاده کننده است ، کلاینت می نامند. )
Web-API ها خود به چند دسته تقسیم میشوند که در مقاله ی دیگری به معرفی و بررسی آنها خواهیم پرداخت
3- کتابخانه - نرم افزار ( که حالت ویژه تری از نرم افزار - نرم افزار است .)
این مدل ارتباط نیز تقریبا همان ارتباط نرم افزار - نرم افزار است، منتها تفاوت هایی وجود دارد.
تفاوت اول این است که شما برای استفاده از این دسته API ها باید Interface ها را به نرم افزار خود اضافه کنید ( به عنوان مثال در زبان C++ شما باید فایل هدر را که شامل معرفی کلاس ها و اعلان توابع است ، به سورس کد خود اضافه کنید تا بتوانید به لیست API ها (در اینجا توابع و کلاس ها) دسترسی داشته باشید.)
تفاوت دوم این است که برخلاف حالت نرم افزار - نرم افزار، در این حالت نرم افزار شما از کتابخانه مستقل نیست و به آن وابستگی دارد ( تا حدی که بدون وجود باینری های کتابخانه نرم افزار شما اجرا نمیشود. ) با این حال شما با استفاده از API هایی توانسته اید با آن کتابخانه ( که یک نرم افزار است ) ارتباط برقرار کنید و از ویژگی های آن استفاده کنید.
برای مثال از این نوع API ها میتوان به OpenCV اشاره کرد که قابلیت های پیشرفته ای برای پردازش تصویر را در اختیار شما قرار میدهد و با استفاده از API های آن میتوانید به این قابلیت ها دسترسی داشته باشید.
از دیگر مواردی که زیر مجوعه ی این دسته قرار میگیرد میتوان به کیت های توسعه نرم افزار یا SDK ها اشاره کرد، Windows SDK یا Android SDK از معروفترین SDK های موجود هستند .
4- سخت افزار - نرم افزار
کمپانی های تولید کننده ی سخت افزار، APi هایی بسیار سطح پایین ( منظور از سطح پایین، سطحی نزدیک به سخت افزار ) را برای کنترل قطعات توسط نرم افزار ها ارائه میکنند. برای مثال وقتی برای شناساندن کارت گرافیک سیستم خود به سیستم عامل، درایوری نصب میکنید، در این درایور از API های سخت افزار استفاده میکنید.
شاید برایتان سوال پیش بیاید که خود درایور چه چیزی است؟ در پاسخ باید گفت که درایور ، یک پوشش اضافه برای استفاده از امکانات سخت افزار است که مانند یک پل میان سیستم عامل و سخت افزار عمل میکند و باعث تعامل پذیری ( در صورت عدم وجود تعامل ) یا تعامل بهتر میشود.
APIAPI
در پایان میتوان تعریف زیر را کامل ترین خلاصه برایAPIها بیان کرد :

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

خطا

خروج
از 5
امتیاز دهید:
خطا

خروج
کامنت

برای ارسال کامنت وارد شوید

مشاهده پاسخ ها
مشاهده پاسخ ها