به احتمال زیاد واژۀ API به گوشتان خورده است! شاید اینطوری بوده که در جمعی کسی از این عبارت استفاده کرده و شما بدون اینکه هیچ ایدهای از چیستی آن داشته باشید، فقط حرف او را تأیید کردهاید:) شاید هم در جایی این عبارت را خوانده باشید و بهخاطر ندانستن معنای پشت آن، درک باقی مطالب هم برایتان سخت شده باشد.
درهرصورت، به جای درستی آمدهاید! چون قرار است در این مقاله به پرسشی که مثل خوره به جانتان افتاده است، پاسخ دهیم؛ میخواهیم ببینیم API چیه!
مفهوم API چیست؟
شاید باورتان نشود، ولی API دین بزرگی به گردن زندگی دیجیتال بشر دارد! هربار که بلیط سینما را آنلاین خریدید، هربار که عکس خود را در اینستاگرام منتشر کردید، هربار که غذایی را از پلتفرمهای اینترنتی سفارش دادید و…، بدون استثنا پای API در میان بوده و بخش مهمی از کار را بر عهده گرفته است.
به سادهترین بیان، API سازوکاری است که برقراری ارتباط بین دو اپلیکیشن را ممکن میکند. در واقع، میتوان آن را یک واسطه تصور کرد که از مجموعهای از پروتکلها، کدها و قوانین تشکیل شده و وظیفه دارد از درستی ارتباط بین دو نرمافزار مطمئن شود.
با این اوصاف، هرجایی که تبادل اطلاعات و داده بین دو اپلیکیشن انجام میگیرد (به درخواست کاربر)، پای API هم در میان است.
بهلطف وجود APIها، برنامهنویسها لازم نیست هربار که محصول، سایت، یا اپلیکیشنی را توسعه میدهند، قابلیتهای مختلف را از صفر کدنویسی کنند. مثلاً اگر سایتی مرتبط با ارزهای دیجیتال، ترید و کارهای اینچنینی میسازید، میتوانید با استفاده از API تریدینگ ویو، چارتهای این سایت معتبر و شناختهشده را روی سایت خود قرار دهید.
بنابراین، میتوانیم بگوییم بهخاطر وجود چنین سازوکاری، توسعه و ساخت نرمافزارهای مختلف بسیار راحتتر شده است! چراکه متخصصان و تیمهایی که با آنها کار میکنند، امکان اضافه کردن سرویسها و قابلیتهای نرمافزارهای دیگر به نرمافزار در دست ساخت خود را دارند و این یعنی سرعت بهطرز قابل توجهی زیاد میشود.
امروزه، بیشتر اپلیکیشنهای موبایلی، وباپلیکیشنها، نرمافزارهای سازمانی، سرویسهای ابری، شبکههای اینترنت اشیا و کلاً انواع سرویسهای آنلاین، بهنحوی از APIهای مختلف استفاده میکنند.
⭐ محتوای مرتبط: کلاینت چیست؟ انواع Client و ربط آن به سرور |
API مخفف چیست؟
این عبارت ۳ حرفی نسخۀ کوتاهشدۀ Application Programming Interface است؛ ترجمۀ لغتبهلغت آن میشود: رابط کاربری برنامهنویسی اپلیکیشن! گیج شدید؟ کاملاً طبیعی است. برگردید به توضیحاتی که در پاراگرافهای قبلی بررسی کردیم؛ چون میخواهیم به عمق ماجرا برویم و اطلاعات کاملتری از APIها در اختیارتان قرار بدهیم.
بیایید ببینیم طرز کار API چیست به زبان ساده!
نحوه عملکرد API چگونه است؟
همانطور که گفتیم، APIها در واقع مجموعهای از پروتکلها و قوانین هستند که در کنار هم قرار میگیرند و چنین سازوکارهایی را تشکیل میدهند.
اگر از دور به ماجرا نگاه کنیم و بخواهیم تصویر کلی را در دیدرس داشته باشیم، میبینیم API پیامرسانی است که درخواست را از یک اپلیکیشن گرفته و بعد از تحویل آن به اپلیکیشن دیگر، پاسخ مقصد را به مبدأ برمیگرداند؛ یعنی با سیستمی طرفیم که از ساختار client-server پیروی میکند. فرستندۀ درخواست client محسوب میشود و پاسخدهنده سرور است؛ API هم پلی است که این دو طرف داستان را به هم وصل میکند.
اجازه دهید بیخیال مفاهیم فنی شویم و با زبانی ساده، چگونگی عملکرد APIها را در ۳ بخش جداگانه بررسی کنیم.
مرحله اول: ارسال درخواست
برای اینکه یک API وارد عمل شود و عرضاندام کند، باید درخواستی از طرف client (مثلاً یک اپ موبایلی، وبسایت، نرمافزار سازمانی یا…) ارسال شود. ارسالی که مقصد آن سرور API است.
این درخواست حاوی اطلاعاتی است که به سرور میگویند client میخواهد چه چیزی را در پاسخ دریافت کند. مثلاً دسترسی به یکسری دادۀ خاص، بهروزرسانی اطلاعات در یک زمینۀ مشخص، یا انجام اقدامی بهخصوص از طرف سرور.
درخواست معمولاً با پروتکل HTTP ارسال میشود؛ اگر دوست دارید اطلاعات بیشتری از این پروتکل شناختهشده و نسخۀ ایمن آن به دست بیاورید، مقالۀ “پروتکل https چیست؟ چه فرقی با HTTP دارد و چرا به آن نیاز داریم؟” را بخوانید.
به این مرحله API Calls هم میگویند. این زیر انواع درخواستها را میبینید:
- GET: درخواست دسترسی پیدا کردن به یک منبع بهخصوص؛
- POST: درخواست ایجاد یک منبع بهخصوص؛
- PUT: درخواست ویرایش یا بهروزرسانی یک منبع بهخصوص؛
- DELETE: درخواست حذف یک سرور بهخصوص.
⭐ محتوای مرتبط: پروتکل (Protocol) چیست و چگونه کار میکند؟ |
مرحله دوم: پردازش درخواست
سرور بعد از دریافت درخواست، شروع میکند به پردازش آن. در این مرحله است که مشخص میشود چه اقداماتی باید صورت بگیرند و در صورت لزوم، سرور برای دسترسی به اطلاعات مورد نیاز، به دیتابیسی دیگر متصل خواهد شد؛ شاید هم لازم باشد از اپلیکیشنی دیگر سرویس گرفته شود که در این شرایط، یک API دیگر وارد عمل خواهد شد!
مرحله سوم: ارائۀ پاسخ برای درخواست
بعد از پردازش درخواست و آمادهسازی اطلاعات مورد نیاز کاربر، پاسخ در قالب پروتکلی از پیش مشخصشده (معمولاً HTTP) برگردانده میشود.
ضمناً پاسخ لزوماً قرار نیست حاوی اطلاعات درخواستشده توسط کاربر باشد! اگر احیاناً مشکلی پیش بیاید، یک ارور در قالب پاسخ به دستگاه client ارسال خواهد شد.
نکتۀ مهم: گاهی ممکن است API برای انجام درخواست کاربر، نیاز به احراز هویت داشته باشد؛ یعنی بعد از دریافت درخواست از کاربر، API از سیستم مبدأ میخواهد هویتش را برای دسترسی و برقراری اتصال تأیید کند.
اجازه دهید با یک مثال، درک عملکرد API را برایتان راحتتر کنیم.
⭐ محتوای مرتبط: پروتکل FTP چیست و چه فرقی با SFTP دارد؟ |
مثالی از نحوه عملکرد API
تا همین چند سال پیش، برای اطلاع از وضعیت آبوهوا باید پای تلویزیون مینشستیم تا بخش هواشناسی اخبار پخش شود و ببینیم بالاخره کی باران میآید! اما حالا بهلطف گوشیهای هوشمند، میتوانیم از طریق اپلیکیشن Weather، وضعیت آبوهوای هر نقطه از کرۀ زمین را در هر لحظهای بررسی کنیم. اینجا هم API در پشت صحنه است و لطفش را شامل حالمان میکند!
اپلیکیشنهایی که روی گوشیهای مختلف نصب میشوند، اطلاعاتی از خودشان ندارند؛ پس باید وضعیت آبوهوایی را از منابع دیگر گرفته و در اختیار کاربر قرار دهند.
با این اوصاف، وقتی اَپ Weather را روی گوشی خود باز میکنید، درخواستی از آن اپلیکیشن به API تأمینکنندۀ اطلاعات فرستاده میشود (مثلاً سایت هواشناسی Accuweather). درخواست ارسالی احتمالاً شامل اطلاعات مربوط به موقعیت مکانی انتخابشده توسط شما و بازۀ زمانی مد نظرتان میشود.
در آن طرف ماجرا، سرور سایت تأمینکنندۀ اطلاعات، درخواست را دریافت و پردازش میکند؛ بعد از آن، وضعیت آبوهوای موقعیت مشخصشده جمعآوری میشود.
در مرحلۀ بعدی، سرور پاسخ آمادهشده برای درخواست را به اپلیکیشن نصبشده روی موبایل کاربر میفرستد. پاسخی که معمولاً حاوی اطلاعاتی مثل دمای هوا، میزان رطوبت، سرعت باد و… میشود. اینطوری است که میتوانید با اپلیکیشنهای Weather از وضعیت آبوهوا مطلع شوید و یادتان رفته که در گذشته، چقدر دسترسی به همین اطلاعات ساده سخت بود!
در این مثال، درست همانطور که بالاتر هم گفتیم، API مثل یک پل، اپلیکیشن هواشناسی را به سایت تأمینکنندۀ اطلاعات مرتبط وصل میکند و امکان تبادل اطلاعات بین آنها را به وجود میآورد. هرجایی که ردپایی از APIها دیده میشود، کار با روال مشابهی پیش میرود.
اصلاً اگر موافق باشید، سرکی بکشیم به دنیای واقعی و ببینیم APIها چه کاربردهای مهمی را از خود نشان میدهند.
⭐ محتوای مرتبط: SSH چیست؟ آشنایی با ۰ تا ۱۰۰ پروتکل SSH |
کاربردهای API در دنیای واقعی
تصمیم گرفتیم این بخش را هم به ۳ قسمت جداگانه تقسیم کنیم تا کاربرد این سازوکار در دنیای واقعی را بهتر درک کنید.
۱) اپلیکیشنها
واتساپ و تلگرام را بهعنوان دو اپلیکیشنی که بین ایرانیها بسیار محبوب هستند، در نظر بگیرید. دو پیامرسانی که از APIهای بسیاری کمک میگیرند تا بتوانند بدون نقص کارشان را انجام دهند.
اول از همه، برای برقراری ارتباط بین سرورهای مختلف و ارسال پیام از شبکهای به شبکهای دیگر، به API نیاز است. همچنین، APIها امکان بهروزرسانی لحظهای را به وجود میآورند؛ به این ترتیب، ارسال سریع پیامها، با کمترین تأخیر، ممکن میشود.
اپلیکیشنهای پیشرفتهتر مثل تلگرام و حتی اینستاگرام و X، امکان استفاده از سرویسهای واسطه را برای کاربرانشان به وجود آوردهاند که خب ارتباط بین این اَپها و آن سرویسها هم با استفاده از API برقرار میشود.
در کل، هر طرفی که سر بچرخانیم، ردپای این سازوکار و کاربردش را در انواع اپلیکیشنها میبینیم.
⭐ محتوای مرتبط: Juice SSH چیست؟ (راهنمای اتصال به سرور با سیستم اندرویدی) |
۲) سرویسهای ابری
اگر میخواهید با سرویسهای ابری و کلاً رایانش ابری بیشتر آشنا شوید، مقالۀ “رایانش ابری (Cloud Computing) چیست؟ بررسی کاربردها برای کسبوکارها” را بخوانید.
نقش پرررنگ APIها در این سرویسهای نوظهور هم غیر قابل انکار است. بهطور مشخص، راه API و سرویسهای ابری در چهارراههای زیر به هم برمیخورد:
- مدیریت دادهها: APIها در فرایندهای بسیاری، از یکپارچهسازی و ادغام دادهها گرفته تا همگامسازی آنها، دخیل هستند.
- مدیریت زیرساخت: APIها میتوانند امور مهمی مثل رصد مصرف منابع، اختصاص منابع به وظایف مختلف، افزایش منابع در شرایط خاص و… را برای سرویسهای ابری راحتتر کنند.
- پیادهسازی اپلیکیشنها: با فراهم کردن امکان دسترسی به قابلیتهای از پیش ساختهشده، APIها فرایند ساخت و توسعۀ انواع اپلیکیشنها را تسریع میکنند.
- افزایش امنیت: بهکمک انواع APIها میتوانید سازوکارهای سفتوسخت و مطمئنی برای بالا بردن ایمنی سرویس تعریف کنید.
بگذارید اینطور بگوییم که بهواسطۀ وجود APIها، بهرهوری حداکثری از انواع سرویسهای ابری ممکن میشود!
⭐ محتوای مرتبط: فضای ابری چیست؟ معرفی ۵ فضای ابری رایگان |
۳) فروشگاههای آنلاین
فرض کنید میخواهید بلیط هواپیما بخرید؛ احتمالاً این عبارت را در گوگل سرچ میکنید و کارتان را در یکی از سایتهای ظاهرشده در صفحۀ نتایج پیش میبرید. مثلاً وارد سایت علیبابا میشوید و بعد از انتخاب مبدأ، مقصد، تاریخ پرواز و تعداد بلیطهایی که لازم دارید، لیستی از پروازهای موجود را میبینید.
بعد از انتخاب پرواز و وارد کردن اطلاعات شخصی، به صفحۀ پرداخت میرسید و بعد از واریز وجه، بلیط برایتان صادر میشود.
از دیدگاه شخص شما، بهعنوان کاربر، تمام کارها در سایت علی بابا انجام گرفته و فقط برای واریز وجه به صفحۀ درگاه منتقل شدهاید؛ اما خب حقیقت این است که در پشت پرده، کلی نرمافزار مشغول همکاری با یکدیگر هستند تا بتوانند همین کار در ظاهر ساده را به سرانجام برسانند!
مثلاً بعد از فشردن دکمۀ جستجو، سایت باید به دیتابیسی متصل شود تا لیست پروازهای موجود را از آن استخراج کند. بعد از تکمیل این کار هم سیستمهایی به هم متصل میشوند تا بلیط به نام شما صادر شود و بتوانید با خیال راحت به فرودگاه بروید.
APIها این قسمتهای فنی و پیچیدۀ کار را بر عهده میگیرند تا ما بتوانیم تجربۀ خوشایندی از خدمات اینترنتی داشته باشیم.
حالا وقت آن است که با انواع api آشنا شوید.
⭐ محتوای مرتبط: وب سرور چیست؟ + آشنایی با انواع Web Server |
انواع API را بشناسید
به احتمال زیاد، تا اینجای مقاله خیلی خوب فهمیدهاید که API چیست! باید بدانید این سازوکارها که گفتیم با برقراری ارتباط بین نرمافزارها، نقش خیلی مهمی در عملکرد بینقص سرویسهای اینترنتی ایفا میکنند، انواع مختلفی دارند. انواعی که در این بخش آنها را معرفی میکنیم.
۱. Public API (عمومی)
به این نوع، Open API هم میگویند. انواع api که برای استفادۀ خارجی در دسترس هستند، در این دسته قرار میگیرند؛ یعنی هرکسی میتواند سراغ آنها برود و از آنها استفاده کند. برخی از APIهای عمومی رایگان هستند و برخی دیگر پولی.
موارد زیر دو نمونه Public API هستند:
- Twitter API: به برنامهنویسها اجازه میدهد برای توییتر ربات بسازند، ترندها را آنالیز کنند، از امکانات این پلتفرم در جاهای دیگر بهره ببرند و….
- Google Maps API: به سادهترین بیان، با استفاده از این API، امکان استفاده از نقشۀ گوگل در اپلیکیشنهای مختلف فراهم میشود. نمونۀ بارز آن هم اسنپ است که از این API استفاده میکند و به کاربرانش اجازه میدهد از روی نقشه مبدأ و مقصد صفر خود را مشخص کنند.
۲. Private API (خصوصی)
چنین APIهایی فقط برای مصارف داخلی کاربرد دارند. مثلاً یک سازمان میتواند API اپلیکیشن سازمانی را در اختیار برنامهنویسهای شاغل در شرکت قرار دهد تا از آن برای منظورهای مختلف استفاده کنند.
برای مثال، کمپانی عظیمی مثل آمازون، از چندین و چند نرمافزار درونی کمک میگیرد تا همۀ کارها بدون مشکل پیش بروند. آمازون برای برقراری ارتباط بین این سیستمهای داخلی، از APIهای خصوصی استفاده میکند.
⭐ محتوای مرتبط: دواپس چیست؟ همه چیز درباره Devops به زبان سادهِ ساده! |
۳. Partner API (شریکی)
APIهای شریکی بین نوع عمومی و خصوصی قرار میگیرد. به این ترتیب که فقط با کمپانیهایی به اشتراک گذاشته میشود که جزو شرکای تجاری کسبوکار به حساب میآیند.
برای مثال، میتوانیم به سایتهایی مثل ترب اشاره کنیم. ترب از APIهای شریکی استفاده میکند تا محصولات سایتهای مختلف را روی پلتفرم خودش به نمایش بگذارد.
همچنین، همۀ سایتهایی که درگاه پرداخت دارند هم از این نوع API استفاده میکنند!
۴. Composite API (ترکیبی)
در این نوع، چندین مدل API با هم ترکیب میشوند تا به وظایف مرتبط (و البته جدا از یکدیگر) رسیدگی کنند.
با پیش گرفتن چنین رویکردی، یعنی ترکیب چند نوع API با هم و ساخت API ترکیبی، سرعت بیشتر و عملکرد بهتری را هم تجربه خواهید کرد.
بالاتر یک مثال از خرید بلیط هواپیما را بررسی کردیم. در آن مثال و کارهای مشابه، چندین API دستبهدست هم میدهند تا کار انجام شود؛ در نتیجه، با API ترکیبی طرف هستیم.
بعد از اینکه فهمیدید انواع API چیست، وقت آن میشود که مزایای بهکارگیری چنین سازوکاری را زیر ذرهبین ببریم.
مزایای استفاده از API چیست؟
چندین بار از نقش مهم API در فراگیری خدمات اینترنتی گفتیم و قطعاً همین مورد مهمترین مزیت استفاده از APIها است؛ منتهی در اینجا میخواهیم با نگاهی موشکافانهتر به این پرسش پاسخ دهیم.
کاهش زمان توسعه نرمافزار
بالاتر هم گفتیم که بهخاطر امکان برقراری اتصال بین یک نرمافزار با نرمافزارهای دیگر، لازم نیست هر امکان و قابلیتی را از صفر کدنویسی کنید؛ بنابراین، در زمان کوتاهتری میتوان یک اپلیکیشن را ساخت و توسعه داد.
افزایش قابلیت اتصال و مقیاسپذیری
APIها یک زبان عمومی را تعریف میکنند که همۀ انواع سیستمها میتوانند آن را به کار بگیرند تا با دیگر نرمافزارها ارتباط برقرار کنند. در نتیجه، اتصالهای بیشتری شکل میگیرد و میتوان به آیندهای که همۀ نرمافزارها به هم وصل هستند، امیدوار بود.
بهعلاوه، انواع APIها بهدلیل ساختار ویژهای که دارند، مقیاسپذیری را از راههای مختلف آسان میکنند.
تسهیل ارائه خدمات شخصیسازیشده
API امکان دسترسی به دادههای مخاطبان در دیتابیسهای مختلف را فراهم میکند؛ بهدنبال این موضوع، شانس این را دارید که تجربۀ هر کاربر را بسته به رفتارهای قبلی و ترجیحاتش شخصیسازی کنید.
برویم که جنبههای منفی را هم بررسی کنیم.
⭐ محتوای مرتبط: ip اختصاصی چیست؟ مقایسه تفاوتهای IP اختصاصی و اشتراکی |
نگاهی به چالشها و محدودیتهای API
با وجود تمام مزیتها، اندک ایراداتی هم وجود دارند که در این بخش با آنها آشنا خواهید شد.
مسائل امنیتی در APIهای عمومی
APIهای عمومی میتوانند در برابر حملات سایبری آسیبپذیر باشند! بهطور مشخص، حملاتی که رخنههای دادهها، و احراز هویت کاربران را هدف قرار میدهند، امکان آلوده کردن APIها را دارند.
نیاز به مستندسازی دقیق
از آنجایی که APIها دائماً بهروزرسانی میشوند، آپدیت نگه داشتن داکیومنتهای آنها کار نسبتاً سختی است؛ و البته که حتماً باید همهچیز را مستند کنید تا نحوۀ استفاده از API کاملاً واضح باشد.
مشکلات مربوط با محدودیتهای نرخ (Rate Limiting)
Rate Limiting نام تکنیکی است که درخواستهای دریافتی API در یک بازۀ زمانی مشخص را محدود میکند؛ در نگاه اول، این تکنیک جلوی سوءاستفادههای احتمالی را میگیرد و وجود آن ضروری است.
اما از طرف دیگر، گاهی محدودیتهایی که توسط این سازوکار اعمال میشوند، روی چگونگی عمکلرد API اثرات منفی بهجای میگذارند.
حالا کاملاً با مفهوم api آشنا شدید و نوبتی هم که باشد، نوبت جمعبندی است.
پروردگار را سپاس بهخاطر وجود APIها!
در این مقاله فهمیدیم api چیست. در برنامهنویسی، این سازوکار به دولوپرها اجازه میدهد بدون اینکه لازم باشد همۀ قابلیتها را از نو بنویسند، امکان برقراری ارتباط بین نرمافزار در دست توسعه با دیگر نرمافزارها را به وجود بیاورند.
APIها کارهای مهم و سنگینی را در پشت صحنه انجام میدهند و به همین خاطر، خدمت زیادی به کاربران اینترنت میکنند. در واقع، تقریباً همۀ انواع خدمات آنلاین، بهنحوی وابستۀ APIها هستند و اگر این سازوکارها وجود نداشتند، دنیای اینترنت اینچنین فراگیر و کاربردی نمیشد!
سعی کردیم با زبانی کاملاً ساده و قابل فهم چیستی این مفهوم را توضیح دهیم و امیدواریم توانسته باشیم به این هدف برسیم. حالا از شما میخواهیم لینک این مقاله را برای دیگر دوستانتان که نمیدانند API چیست بفرستید تا در گسترش دانش به ما کمک کنید.
سپاس از وقتی که برای خواندن این مقاله گذاشتید.
منابع: TechTarget | HubSpot | IBM
دیدگاه ها
اولین نفری باشید که دیدگاه خود را ثبت می کنید