API چیست و در کجا کاربرد دارد؟
اگر به دنبال جواب این سوال هستید که API چیست، ما در این مقاله به این سوالها پاسخ خواهیم داد:
- API چیست؟
- API در کجاها کاربرد دارد؟
- API چه انواعی دارد؟
- تفاوت وبسرویس و API چیست؟
- نرمافزار چه فرقی با API دارد؟
اگر میخواهید به پاسخ این پرسشها برسید، ادامه این مقاله را بخوانید. ما سعی کردهایم به زبان ساده از 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 در اپلیکیشنها، از خدمات نقشهمحور بهراحتی استفاده شود.
مثال ۳
اگر بخواهید اوقات شرعی را در سایت خود داشته باشید، خودتان مستقیما به این اطلاعات دسترسی ندارید؛ برای مثال، شما نمیدانید اوقات شرعی در کل دنیا و در هر کدام از شهرها چه زمانیست. برای این کار، میتوانید سایتی را پیدا کنید که به شما API اوقات شرعی را میدهد.
از سیستم خودتان به سیستمی که این اطلاعات را دارد، یک درخواست API ارسال میکنید و از آن سیستم میخواهید که این دادهها را به شما بدهد. در واقع با استفاده از API، بین سیستم و نرمافزار خود با یک نرمافزار دیگر ارتباط برقرار میکنید. شما درخواستی ارسال میکنید، آن سیستم درخواست شما را بررسی میکند و با توجه به درخواست شما، یکسری اطلاعات به شما داده میشود.
مثال ۴
فرض کنید شما صاحب یک وبسایت هستید و میخواهید قیمت طلا، سکه و… را در آن نشان دهید. از آن جایی که قیمتها ممکن است لحظهای تغییر کنند، قطعا شما نمیتوانید بهعنوان مدیر سایت، ثانیهبهثانیه اطلاعات را در سایت تغییر دهید یا سرویسی بنویسید که این کار را برای شما انجام دهد؛ چراکه این کار هم زمانبر است و هم هزینه دارد.
برای رفع این مشکل، تعدادی سایت و سرویس به وجود آمدهاند که این سرویسها را در قالب یکسری API در اختیار سایتهای دیگر قرار میدهند. شما میتوانید از سرویسهای آنها استفاده کنید، از اطلاعاتی که آنها در اختیار شما قرار میدهند، بهره ببرید و همان اطلاعات را در سایت خود پیاده کنید.
مثال ۵
فرض کنید میخواهید بهصورت رندوم، ۱۰ جمله از سخن بزرگان در بالای سایت شما نشان داده شوند. برای این کار، میتوانید به سایتی مراجعه کنید که این سرویس را به شما ارائه میکند؛ یعنی شما یک درخواستی به API این سایت میدهید و در پاسخ به این درخواست، به تعدادی که میخواهید به شما جمله خواهد داد و شما میتوانید از این جملهها استفاده کنید.
اینها تنها چند مثال ساده برای آشنایی با کاربردهای مختلف API بودند. باید بدانید که کاربردهای API به این موارد محدود نمیشوند.
مزایای API برای یک برنامه نویس یا توسعه دهنده چیست؟
برای پاسخ به این سوال که مزایای استفاده از API در برنامه نویسی چیست، میتوانیم به موارد زیر اشاره کنیم:
- Back-end و Front-end کاملا جدا میشوند.
- افراد گوناگون با پلتفرمهای گوناگون میتوانند مخاطب شما باشند و جامعه مخاطبان وسیعی خواهید داشت.
- شما میتوانید APIهای خود را بهعنوان یک خدمت به سازمانهایی بیرون از سازمان خود ارائه دهید. در واقع API میتواند یک بیزینس برای شما باشد. شما میتوانید با به کارگیری بهترین زبان های برنامه نویسی، API درست کنید، آن را در اختیار توسعهدهندگان دیگر قرار دهید و به این ترتیب، کسب درآمد کنید.
چه کسبوکارهایی میتوانند از API استفاده کنند؟
پیش از این با ذکر چند مثال به شما گفتیم که کاربردهای API چیست؛ اما کاربردهای API فقط به همان چند مثال محدود نمیشوند.
کسبوکارهای مختلف میتوانند به کمک APIها، بهبود پیدا کنند یا این که بهطور کلی، بر اساس APIها شکل بگیرند. کسبوکارها، میتوانند هم بهعنوان سرویسگیرنده و هم بهعنوان سرویسدهنده از API استفاده کنند. کسبوکارهایی مثل:
- خدمات حمل کالا
- فروشگاه آنلاین
- پلتفرم خدمات فنی
- سامانه مدیریت گلخانه
- سامانه مدیریت ساختمان
- سامانه سلامت دیجیتال
- پلتفرمهای مدیریت مالی فردی
- پلتفرمهای فروش خدمات گردشگری
- و …
این کسبوکارها با توجه به نیازشان، میتوانند از APIهای مختلفی مثل پرداخت، احراز هویت، رزرو هتل و اقامتگاه، فروش بلیت (هواپیما، قطار و…)، صدور بیمه، نقشه، دیتابیس، استعلام قیمت، هواشناسی و… بهره ببرند.
برای مثال، API پرداخت به مجوزی احتیاج دارد که در اختیار بانکهاست. شما از طریق این API به خدمتی دسترسی پیدا میکنید که اصلا خودتان اجازه توسعه آن را در مجموعه خود ندارید. بهطور کلی، بانکها یکی از اصلیترین تامینکنندگان API در اکوسیستم دیجیتال هستند.
همچنین با APIهای صدور بیمه، هر کسبوکاری میتواند یک کارگزار صدور بیمه باشد؛ به این صورت که با فراخوانی یک API و مشخصکردن نوع بیمه، مدتزمان، هزینه و سایر مشخصات، میتوان یک بیمه صادر کرد.
به همین ترتیب، سایر APIها میتوانند با توجه به هدفشان به کسبوکارهای مختلف کمک کنند.
انواع API
APIها را به شکلهای متفاوتی دستهبندی میکنند. در ادامه با ۳ دستهبندی متفاوت آشنا میشوید:
انواع API بر اساس سیاست های انتشار
۴ نوع اصلی API بر اساس خط و مشیهای در دسترسبودن و انتشار وجود دارند که عبارتند از:
- Open APIs یا Public APIs
- Partner APIs
- Internal APIs یا private APIs
- Composite APIs
انواع API بر اساس موارد استفاده
APIها را میتوان بر اساس سیستمهایی که برای آن طراحی شدهاند طبقهبندی کرد.
- Database APIs یا پایگاه داده
- Operating systems APIs یا سیستمعامل
- Remote APIs یا ریموت
- Web APIs یا تحت وب
انواع پروتکل/مشخصات API
پروتکل/مشخصات API، تبادل داده بین وبسرویسها را استاندارد میکند. در اینجا استانداردسازی به معنای توانایی سیستمهای مختلف برای این است که بهصورت یکپارچه با یکدیگر ارتباط برقرار کنند. (سیستمهایی که به زبانهای برنامهنویسی متفاوت نوشته شدهاند، یا روی سیستمعاملهای مختلف ران میشوند یا از فناوریهای متنوعی استفاده میکنند.)
- Rest Web APIs (Representational State Transfer)
- SOAP Web APIs (Service Object Access Protocol)
- RPC Web APIs (Remote Procedural Calls)
- gRPC
- GraphQL
تفاوت وب سرویس با وب ایپیآی و API چیست؟
بسیاری از افراد ممکن است این مفاهیم را با یکدیگر اشتباه بگیرند و آنها را به جای هم استفاده کنند. همانطور که پیش از این هم گفتیم، APIها یک رابط بین اپلیکیشنها و نرمافزارهای مختلف هستند تا بتوانند با هم ارتباط برقرار کنند؛ اما وبسرویسها ارتباط بین دو ماشین را در شبکه برقرار میکنند. (کلاینت و سرور)
یکی از دلایلی که باعث شده است افراد بهراحتی نتوانند به تفاوتهای وبسرویسها و APIها پی ببرند، بهوجودآمدن Web API است. در گذشته API فقط در برنامهنویسی آفلاین به کار برده میشد؛ اما امروزه با استفاده از Web API میتوان از دادهها و امکانات یک نرمافزار روی اینترنت بهره برد. امروزه وقتی صحبت از API میشود، بیشتر منظور وبایپیآی است.
مهمترین ویژگی یک Web Service این است که به شبکهای از کامپیوترهای متصل به هم نیاز دارد؛ در حالی که در API هیچ الزامی به استفاده از شبکه نیست.
تفاوت وبسرویس و API بسیار اندک است. در نهایت، میتوان گفت که هر وبسرویسی یک API است؛ اما عکس آن لزوما صادق نیست.
تفاوت نرم افزار با API چیست؟
نرمافزارها برای استفاده توسط انسانها طراحی شدهاند؛ اما APIها توسط نرمافزارها مورد استفاده قرار میگیرند. در نرمافزارها از تکنیکهایی استفاده میشود تا اطلاعات برای انسانها برجسته شوند. برای مثال از رنگهای متفاوت استفاده میکنند؛ اما چنین کاری برای API لازم نیست؛ چرا که کاربران آنها انسان نیستند.
نکات کلی درباره API ها
در پایان، میتوانیم بهطور خلاصه به مواردی از این قبیل اشاره کنیم:
- سیستمها و نرمافزارها هم میتوانند با یکدیگر صحبت کنند. ارتباط بین این نرمافزارها و سیستمها از طریق API صورت میگیرد.
- API کاری میکند که یک سرویس بتواند یکسری از امکانات را از سایتها، سرویسها و سیستمهای مختلف دریافت کند.
- APIها میتوانند به توسعه نرمافزارها سرعت ببخشند و این کار را تسهیل کنند.
- از API در جاهای مختلفی استفاده میشود؛ مثل احراز هویت کاربر، نقشه و مسیریابی، پرداخت و کیف پول، دادههای هواشناسی، صدور بیمه، استعلام جرایم، وضعیت راهها و….
- API ابزاریست که بین کسبوکارهای مختلف ارتباط ایجاد میکند. کسبوکارها میتوانند خدمات خود را از طریق API به دیگران عرضه کنند و از آنها خدمات بگیرند.
جمع بندی
یکی از دلایل استفاده از API این است که شما میتوانید نرمافزار، سایت یا اپلیکیشن خود را با استفاده از امکاناتی که بقیه به شما ارائه میدهند، قویتر کنید.
برای مثال، شما در طراحی سایت با موضوعات انگیزشی، از امکان API سخنان حکیمانه یک سایت دیگر، استفاده و آن امکان را به سایت خود اضافه میکنید؛ بنابراین، شما سایتی خواهید داشت که مجموعی از کدهای خودتان است؛ بهعلاوه، سرویسی که از یک سایت دیگر دریافت کردهاید.
ما سعی کردیم در این مقاله با آوردن چندین مثال به شما توضیح دهیم که API چیست و چه کاربردهایی میتواند داشته باشد. اگر کاربردهای دیگری از API را میشناسید، خوشحال میشویم آن را با ما در میان بگذارید.