API چیست ؟ API به زبان ساده با مثال
یکی از مفاهیم مهم که در زبانهای برنامهنویسی مختلف کاربرد دارد API یا Application Programming Interface است. در این نوشته به مفهوم و کاربردهای API در محیطهای مختلف خواهیم پرداخت.
API یا «رابط برنامهنویسی کاربردی» یک سری از دستورالعملهای مشخص و تعریف شده است که نرمافزارها، سختافزارها، کامپوننتها یا سایتهای اینترنتی میتوانند با استفاده از آن با یکدیگر ارتباط برقرار کنند.
به عبارت دیگر API جایگزینی برای رابط کاربری است. همان گونه که کاربران میتوانند با فشردن یک دکمه، دستوری را به سختافزار ارسال کنند یا با حرکت ماوس، پیامی را به یک نرمافزار بفرستند، API نیز ابزاری است که نرمافزارها و سختافزارها با کمک آن میتوانند با هم ارتباط برقرار کنند و به یکدیگر دستورات مورد نظر را ارسال کنند.
بدون وجود API، همکاری میان اجزای کوچک سیستمهای سختافزاری و نرمافزاری امکانپذیر نیست.
مزیت استفاده از API
رابطهای برنامهنویسی، این مزیت را دارند که جلوی دسترسی مستقیم سیستمهای دیگر به اطلاعات حساس یا خصوصی را سد میکنند. تنها دستورات و رابطهای تعریفشده با قابلیت کنترل دسترسی، در اختیار دیگران قرار خواهند گرفت. بنابراین سیستمهای دیگر نمیتوانند هر تغییر و هر فعالیت مخرب یا غیرمجاز را در سیستم دیگر به انجام برسانند.
علاوه بر این، تعریف API کار ارتباط میان سیستمهای مختلف را آسان میکند. با تعریف پروتکلهای استاندارد و شناختهشده، ارسال و دریافت دستورات و اطلاعات در زمانی کوتاه قابل انجام هستند.
مثال از APIهای شناخته شده
API در انواع مختلف در سختافزارها و نرمافزارها وجود دارند. برخی از انواع شناختهشدهی API عبارتند از:
- API سیستم عامل ویندوز برای برنامهنویسی و ارتباط با هسته ویندوز
- API سایت توئیتر برای توسعهی رابط کاربری سفارشی روی کامپیوترهای رومیزی و گوشیهای موبایل
- API جاوا برای برنامهنویسی و ارتباط با هستهی کتابخانههای جاوا
- API نقشه گوگل برای نمایش نقشه و دریافت اطلاعات در مورد مکانهای مختلف جهان
- API بانکهای مختلف برای انجام پرداخت آنلاین
تفاوت وب سرویس و API
وب سرویس نامی دیگر برای APIهای تحت وب به شمار میرود. سایتهای اینترنتی میتوانند برای ارتباط با یکدیگر از وبسرویس یا API استفاده کنند. برای مثال ممکن است سایت «الف» سفارشهای خرید کالا را از مشتریان دریافت کند و با استفاده از وب سرویس تعریف شده در سایت «ب»، درخواست تامین کالا را به صورت فوری ارسال نماید.
مثالی دیگر، استفاده از وبسرویسهای پرداخت آنلاین است. سایتهای فروشگاه اینترنتی، برای دریافت وجه از مشتریان خود، لازم است تا با وبسرویس بانکها ارتباط برقرار کنند و مبلغ لازم برای پرداخت و اطلاعات مشتری را اعلام کنند. در مرحلهی بعدی وبسرویس بانک، اطلاعات لازم برای شروع پرداخت را به فروشگاه اینترنتی ارسال میکند و مشتری با این اطلاعات به سایت بانک هدایت میشود.
سرویس و میکروسرویس
سرویسها و میکروسرویسها ابزارهایی هستند که خدمات مشخصی را ارائه میکنند. بدون اینکه بدانند این خدمات در چه جایی استفاده میشود، تنها تمرکز سرویسها و میکروسرویسها روی انجام وظیفهای است که بر عهده دارند. مثلا یک میکروسرویس میتواند وظیفهی تولید اعداد تصادفی واقعی را برعهده بگیرد بدون اینکه بداند این عددهای تصادفی در کجا و به چه منظوری استفاده میشوند.
معماری سرویسگرا یا معماری میکروسرویس نوعی از تولید نرمافزار است که وظایف یک برنامه را به قطعات کوچک یا خیلی کوچک تقسیم میکند و انجام آن را به عهدهی سرویسهایی بیرونی قرار میدهد. این نوع برنامهنویسی مزایا و معایبی دارد که بسته به نیاز میتواند برای توسعه مورد استفاده قرار بگیرد.
هر سرویس یا میکروسرویس دارای رابطی بیرونی است که میتواند API یا اینترفیس سرویس نامگذاری شود.
آیا JSON و XML یک API هستند ؟
خیر. JSON و XML روشهایی برای ساختاردهی به انواع اطلاعاتی هستند که قصد ارسال و دریافت آنها را داریم. انتقال اطلاعات از طریق API به دلیل اینکه مبدا و مقصد سیستمهای متفاوتی هستند، نیازمند استانداردسازی روشهای ارتباطی است. به همین دلیل در اغلب APIها، برای ارسال و دریافت اطلاعات از دو نوع ساختاربندی عمومی JSON و XML استفاده میشود.
APIهای برنامهنویسی
مجموعه دستوراتی که فریمورکهای برنامهنویسی مانند داتنتفریمورک یا جاوا در اختیار برنامهنویسان قرار میدهند گونهای از API به حساب میآید. زیرا هستهی مرکزی فریمورک یک نرمافزار است که فعالیتهای متعددی انجام میدهد و برنامهها با فراخوانی دستوراتی از پیشتعریفشده، دستورات دلخواه خود را به فریمورک ارسال مینمایند.
علاوه بر فریمورکها، هستهی سیستمعاملها مانند ویندوز و لینوکس نیز دارای API هستند. برنامهها با فراخوانی این دستورات میتوانند روی فعالیتهای سیستمعامل کنترل داشته باشند.
APIهای سختافزاری
سختافزارهای مختلف مانند تلویزیونهای هوشمند، گوشیهای موبایل، دوربینهای تحت شبکه و بسیاری دیگر از سیستمهای جدید که با نام خانه هوشمند شناخته میشوند، دارای API برای دریافت و ارسال اطلاعات هستند.
برای مثال یک دوربین تحت شبکه دارای دستورالعملهایی برای تغییر جهت، شروع و توقف فعالیت، ارسال تصاویر و فیلم و ... میباشد. برنامهنویسان میتوانند این دستورالعملها را از طریق شبکه به دوربین ارسال کنند و اطلاعات لازم را دریافت نمایند.
آقا دمت گرم توضیحت عالی بود
سایت خوب با مقالاتی بسیار بی نظیری دارین