API چیست؟
کلمه API مخفف عبارت Application Programming Interface به معنای رابط برنامه نویسی اپلیکیشن است. Application Programming Interface واسط بین نرمافزارها و سرویسهای گوناگون است که برای شناسایی، ارسال و دریافت اطلاعات استفاده میشود. در حال حاضر با شکلهای مختلف در دسترس است که بسیاری از برنامه ها و سرویس های اینترنتی از آن استفاده میکنند. استفاده از رابط برنامه نویسی به برنامه نویسان و کاربران این امکان را میدهد که سریع و مستقیم به داده ها دسترسی پیدا کنند.
رابط های برنامه نویسی معمولاً به صورت وب سرویس ارائه میشوند. بدین صورت که درخواستها بر روی شبکه ارسال میشوند سپس توسط سرورهای مربوطه پردازش میشوند، سرور جواب میدهد و پاسخ به کاربر نمایش داده میشود.

کاربرد انواع API در زندگی روزمره
در فعالیتهای روزانه بدون اینکه متوجه باشید از این رابط ها استفاده میکنید که در ادامه به چند نمونه از این فعالیت ها اشاره میکنیم:
1) استفاده از اپلیکیشنهای درخواست خودرو (اسنپ و تپسی):
در زمان استفاده از این اپلیکیشن ها همزمان چندین رابط برنامه نویسی درحال اجراست. رابط برنامه نویسی نقشه برای نمایش لوکیشن شما و راننده، رابط برنامه نویسی پیامک برای ارسال اطلاعات سفر، رابط برنامه نویسی پرداخت برای کسر هزینه سفر همگی به صورت هماهنگ کار میکنند تا شما بهعنوان کاربر خیلی راحت از این نرمافزار استفاده کنید.
2) خرید آنلاین:
هربار که شما از یک فروشگاه آنلاین خرید میکنید و برای پرداخت وجه به درگاه بانکی منتقل میشوید، رابط برنامه نویسی درگاه پرداخت اطلاعات تراکنش را به بانک ارسال کرده و نتیجه را به فروشگاه اعلام میکند. همه اینها در عرض چند ثانیه و بدون اینکه شما متوجه شوید انجام میشود.
3) ورود به وب سایت ها با حساب گوگل:
وقتی در یک سایت جدید گزینه “ورود با گوگل” را انتخاب میکنید، نیازی به ساخت حساب کاربری جدید ندارید. رابط برنامه نویسی گوگل اطلاعات هویتی شما را به صورت امن به سایت مورد نظر منتقل میکند و شما وارد سایت میشوید، بدون اینکه حساب کاربری و رمز عبور جدید بسازید یا فرم پرکنید.
انواع API چیست و هرکدام چه کاربردی دارد؟
رابط ها براساس نحوه دسترسی، ساختار و هدف استفاده، به دستههای مختلفی تقسیم میشوند. آشنایی با انواع آن به شما کمک میکند تا برای هر پروژه مناسب ترین نوع رابط برنامه نویسی را انتخاب کنید.
بخش اول: دستهبندی انواع رابط برنامه نویسی براساس سطح دسترسی
1) عمومی (Open API) یا (Public API)
این نوع رابط برنامه نویسی برای استفاده عموم طراحی شده است و با حداقل محدودیت یا رایگان در دسترس قرار میگیرد.
شرکت های بزرگ مانند گوگل، توییتر و فیسبوک APIهای عمومی را ارائه میدهند تا توسعهدهندگان بتوانند سرویسهای آن را با اپلیکیشن یا سایتهای خود ادغام کنند.
برای مثال Google Maps API به هر برنامهنویسی اجازه میدهد قابلیت نقشه را به اپلیکیشن یا سابت خود اضافه کند.
2) خصوصی (Private API) یا داخلی (Internal API)
این نوع رابط برنامه نویسی فقط برای استفاده داخلی یک سیستم، شرکت یا سازمان طراحی شده است و به کاربران خارج از آن سیستم دسترسی داده نمیشود. درواقع رابط Private برای اینکه بخشمختلف یک سازمان بتوانند با یکدیگر ارتباط برقرار کنند و دادهها را به اشتراک بگذارند استفاده میشود.
برای مثال یک شرکت بزرگ را در نظر بگیرید. بخش مالی شرکت به اطلاعات مربوط به فروش، فاکتور و پرداخت مشتریان نیاز دارد تا گزارش های مالی شرکت را آماده کند. بخش منابع انسانی به اطلاعاتی مانند حقوق، شرح وظایف، ساعات رفت و آمد و مرخصی کارکنان را نیاز دارد. بخش انبار به کنترل موجودی، انبارگردانی، گزارشدهی میزان موجودی، کالاهای معیوب و … نیاز دارد.

برای ارتباط بخشهای مختلف چنین سازمانهای بزرگ، شرکت یک رابط خصوصی در داخل سازمان تعریف میکند تا هر بخش به اطلاعات مورد نیاز بخشهای دیگر دسترسی پیدا کند و در دست افراد ثالث مانند کاربران قرار نمیگیرد.
3) شریک (Patner API)
رابط برنامه نویسی شریکی اغلب در امور تجاری برای برقراری ارتباط بین نرمافزارهای دو شرکت مورد استفاده قرار میگیرد. رابط برنامه نویسی نوع Partner این امکان را به برنامهنویسان میدهد تا برنامههای خود را با پلتفرمهای دیگر به اشتراک بگذارند و از امکانات سرویسها و پلتفرمهای مورد نظر استفاده کنند.
برای مثال رابط برنامه نویسی های درگاههای پرداخت مانند زرینپال یا شاپرک به فروشگاههای آنلاین مجاز ارائه میشود تا بتوانند تراکنشهای مالی را مدیریت کنند. فرض کنید شما یک فروشگاه آنلاین دارید برای تبلیغ محصولاتتان میخواهید از خدمات شرکت های تبلیغاتی کلیکی استفاده کنید به این ترتیب برای نمایش محصولاتتان توسط این شرکت نیاز است API آن ها داخل سایت شما قرار گیرد سپس میتوانید با استفاده از سایت آنها محصولاتتان را تبلیغ کنید.
4) ترکیبی (Composite API)
رابط برنامه نویسی ترکیبی برای خدمات پیچیده تر طراحی شده است. در رابط برنامه نویسی ترکیبی، تعدادی از APIها به صورت همزمان و هماهنگ درخواستی را پردازش میکنند تا خروجی نهایی را به کاربر نمایش دهد. درواقع کاربران میتوانند با استفاده از یک رابط برنامه نویسی جامع و کامل، درخواست های پیچیدهتری انجام دهند و به دادههای مودنظر خود دسترسی پیدا کنند.
تصور کنید بهجای اینکه از برنامههای وضعیت آبوهوا، مسیریابی و اخبار به صورت تکی استفاده کنید با استفاده از یک API به هرسه برنامه دسترسی پیدا کنید. به عبارتی دیگر از طریق یک API که هریک از سه API را در خود دارد، کارتان را ساده کنید.
بخش دوم: دستهبندی براساس معماری و پروتکل
1) Rest
Representational State Transfer یا همانREST به معنی انتقال حالت بازنمایی است و یک سبک معماری نرمافزاری برای ارائه API میباشد.
APIهای Rest بهعنوان Restful API شناخته میشوند که یکی از محبوبترین پروتکل های API است و برای وب سرویس بهکار میرود.
این مدل API براساس مشخصات HTTP که زیربنای وب است طراحی شده است و REST از URL برای دسترسی به داده های وب استفاده میکند.
در این پروتکل، ارتباط بین کلاینت و سرور از طریق HTTP مشخص میشود و دریافت پاسخ از طریق JSON یا XML میباشند.
(HTTP مخفف عبارت Hypertext Transfer Protocol به معنی پروتکل انتقال فرا متن است و برای انتقال دادهها در وب استفاده میشود).

(JSON مخفف عبارت JavaScript Object Notation به معنی نمادگذاری اشیا در جاوا اسکریپت است. JSON یک قالب استاندارد باز است.
ساختار JSON را جفتهای Key:Value تشکیل میدهد که Key باید به صورت رشته ایجاد شده و مقدار Value میتواند اعداد، رشته، آرایه و … باشد).
(XML مخفف عبارت Extensible Markup Language به معنی زبان نشانهگذاری گسترشپذیر است. XML راهکاری برای جابجایی اسناد در برنامههای مختلف است و کاربردی مشابه کدهای HTML دارند درواقع XML تمرکز بر نوع و حمل دادهها و HTML تمرکز بر نحوه نمایش دادهها دارد).
Rest سادگی و انعطاف پذیری بالایی دارد که اکثر سرویسهای وب مدرن مانند اینستاگرام، توییتر و یوتیوب از این مدل API استفاده میکنند.
2) Soap
Soap مخفف عبارت Simple Object Access Protocol به معنای پروتکل دسترسی آسان به اشیاء است.
رابط برنامه نویسی Soap قدیمیتر از رابط برنامه نویسی RESTful است و برای تبادل اطلاعات بین برنامههای کاربردی وب استفاده میشود. این پروتکل از XML (قالب متنی) بهعنوان فرمت پیامهای خود استفاده میکند. APIهای درگاه پرداخت و مدیریت ارتباط با مشتری نمونه ای از پروتکل Soap است.
3) GraphQL
GraphQl یک زبان کوئری که از سوی فیسبوک توسعه یافته است. GraphQL اساساً یک جایگزین برای Rest است چراکه این زبان روشی کارآمد برای طراحی، کاهش ترافیک شبکه، کاهش تعداد فراخوانیهای API محسوب میشود. درحقیقت GraphQL بهجای اینکه رابط برنامه نویسی را در قالب EndPointهای متعدد در نظر بگیرد، آنها را در قالب Graph در نظر میگیرد.
4) WebSocket
وب سوکت برخلاف پروتکلهای سنتی وب که مبتی بر درخواست و پاسخ هستند، با به روزرسانی لحظه ای دادهها یک اتصال دو طرفه و مداوم بین مرورگر و سرور برقرار میکند. چتهای آنلاین، بازیهای چند نفره و برنامههای پخش زنده نمونه ای از پروتکل WebSocket است.
لیستی از بهترین و کاربردیترین APIهای ایرانی:
- سرویس واژهیاب: برای جستجو معانی کلمات
- پارسا سرویس: سرویس فایل هاستینگ
- تلسا: سرویسهای مبتنی بر صوت
- شارژ: خدمات شارژ تلفن همراه
- آپارات: اطلاعات کانالها و…
- بانک ملی: سداد
- بانک سامان: سامان کیش
تعریف جامع API
یک رابط برنامهنویسی است که به دو نرمافزار یا سرویسهای مختلف امکان برقراری ارتباط و تبادل اطلاعات میدهد بدون اینکه نیاز باشد ساختار داخلی هم را بدانند. برای پیاده سازی و اتصال APIها نیاز به دانش برنامهنویسی است اما برخی سرویس ها مانند نواتل، امکان استفاده از قابلیتهای یکپارچه را بدون نیاز به کدنویسی و رابط برنامه نویسی فراهم میکنند به طور مثال پیامک، CRM، چت آنلاین و فکس را در یک پنل واحد ارائه میدهند و نیازی به تنظیمات API ندارند.
زمانی که میخواهید دو سیستم را به هم متصل کنید مثلا اتصال فروشگاه آنلاین به درگاه پرداخت از رابط برنامه نویسی استفاده میکنید.
بسته به نوع APIها برخی رایگان هستند (مثل APIهای عمومی با محدودیت)، برخی پولی و برخی مدل ترکیبی دارند که تعداد درخواست محدود رایگان است و برای استفاده بیشتر باید هزینه پرداخت کنید.
درنهایت مدت زمانی که برای راهاندازی یک رابط برنامه نویسی نیاز است بسته به پیچیدگی پروژه از چند ساعت تا چند روز متغیر است.




دیدگاه خود را بنویسید