API در گفت و گوهای برنامه نویسان به صورت پرتکرار استفاده میشود .ممکن است کسانی را که به تازگی به دنیای برنامه نویسی وارد شده اند، کمی سردرگم کند. با توجه به این موضوع ممکن است از خودتان بپرسید API چیست؟ چه کاربردی دارد؟ اینها سوالاتی است که معمولا ذهن برنامه نویسان تازه کار را به خود مشغول میکند. و خبر بد اینکه دنیای اینترنت سرشار از اطلاعات گیج کننده در مورد ای پی آی است.
فرض کنید نیاز دارید مبلغ موجودی حساب بانکی تان را مشاهده کنید. بنابراین برای این منظور زمانی که در ماشینتان در پشت چراغ قرمز هستید از موبایل بانکتان استفاده میکنید. شما میتوانستید همین کار را از طریق وب سایت بانک هم انجام دهید. هیچ فرقی نمیکند که شما برای این کار از کدام نرم افزار بانک استفاده کرده باشید. در واقع شما یک درخواست (Request) به بانکتان فرستاده اید، و یک پاسخ (Response) که همان مبلغ موجودی شما است دریافت کرده اید. در هر دو روش برای دریافت اطلاعات از ای پی آی بانک استفاده شده است.
API مخفف عبارت Application Programming Interface است. به زبان ساده ای پی آی بخشی از برنامه است که وظیفه ارائه اطلاعات را دارد. پس از دریافت درخواست یک نرم افزار، یک پاسخ به همراه اطلاعات درخواست شده را به آن نرم افزار ارسال میکند.
تفاوت API و وبسایت
همانطور که میدانید در نگاه کلی، اینترنت مجموعه ای از سرورهاست. صفحات سایتهای مختلف بر روی یکی از این سرور ها، که به آنها سرور remote میگوییم قرار دارد. از یک دیدگاه خاص عملکرد این سرورهای remote شباهت بسیار زیادی به ای پی آی دارد. در واقع شما میتوانید لپتاپ شخصی خود را به یک سرور محلی تبدیل کنید.از دید مرورگر، سرور remote یک ای پی آی محسوب میشود.
از این دید، مرورگر نیز خود یک client یا کاربر است. این به آن معنی است که هر زمان که شما یک آدرس اینترنتی را در مرورگر خود وارد مینمایید، در حال استفاده از نوعی ای پی آی هستید. البته توجه کنید که در حقیقت، سرور remote یک ای پی آی نیست. در واقع ای پی آی یک برنامه است که در بخشی از کامپیوتر سرور remote اجرا میشود. این برنامه روی سرور درخواستها را دریافت و جواب را در قالب پاسخ هایی به کاربران یا کلاینتها ارسال میکند.
API چگونه به کاربران خدمات میدهد
شاید اسامی سایت هایی به گوشتان خورده باشد که خدمات خود را در قالب ای پی آی ها به کاربران خود ارائه میدهند. مثلا شرکت اینستاگرام یک ای پی آی را ارائه میدهد که با استفاده از آن برنامه نویسان میتوانند به فالوئرهای یک اکانت و سایر اطلاعات او دسترسی داشته باشند. به برنامه نویسان کمک میکند با استفاده از آن اپلیکیشن هایی مانند آنفالویاب و فالوئر بگیر بسازند. بیشتر شرکتهای بزرگ دنیا، انواعی از آن را برای استفادههای گوناگون در اختیار کاربران خود قرار داده اند.
دسترسی به API ها
به زبان ساده زمانی که شرکتی یک آن را در اختیار کاربران خود میگذارد به این معنی است که یک یا چند URL ارائه میدهد که به تناسب درخواستهای کاربران، پاسخ هایی حاوی اطلاعات مناسب را ارسال میکند. البته این به آن معنی نیست که همانند یک صفحه وب، این پاسخها حاوی اطلاعات گرافیکی هستند. یعنی شما حتی میتوانید از طریق وارد کردن URLها در مرورگر خود، به اطلاعات دسترسی پیدا کنید. پاسخ ای پی آی معمولا در قالب JSON ارسال میشود. اطلاعات JSON به راحتی میتواند در کدها توسط برنامه نویسان مورد استفاده قرار بگیرد .
ساختار پاسخهای API و فرمت JSON
همانطور که گفتیم، یکی از رایجترین فرمتهای مورد استفاده برای پاسخهای ای پی آی، فرمت JSON (مخفف JavaScript Object Notation) است. این فرمت، یک ساختار سبک و قابل فهم برای انسان و ماشین دارد که به شکل «کلید و مقدار» (key-value) عمل میکند. مثلا اگر از یک ای پی آی هواشناسی بخواهید دمای فعلی یک شهر را برایتان ارسال کند، پاسخی شبیه به این دریافت میکنید:
{ "city": "Tehran", "temperature": "32", "unit": "Celsius", "condition": "Sunny" }
برنامهنویس میتواند به راحتی این دادهها را از JSON بخواند و در اپلیکیشن خود نمایش دهد، بدون نیاز به استخراج آنها از HTML یا دادههای گرافیکی.
انواع API
APIها انواع مختلفی دارند که بسته به کاربردشان در سیستمهای مختلف مورد استفاده قرار میگیرند. در ادامه به برخی از رایجترین انواع آنها اشاره میکنیم:
1. Web API (یا RESTful API)
این نوع ای پی آی از پروتکل HTTP استفاده میکند و بیشترین کاربرد را در اپلیکیشنهای تحت وب دارد. REST APIها با استفاده از روشهای رایج HTTP مثل GET، POST، PUT و DELETE کار میکنند و دادهها را معمولاً در قالب JSON یا XML رد و بدل میکنند.
2. SOAP API
برخلاف REST، که ساده و سبک است، SOAP یک پروتکل رسمی و سنگینتر است که معمولاً برای سیستمهای سازمانی یا قدیمی استفاده میشود. دادهها در SOAP معمولاً در قالب XML منتقل میشوند.
3. GraphQL
این نوع ای پی آی که توسط فیسبوک معرفی شد، به کاربران اجازه میدهد دقیقاً مشخص کنند چه دادهای از سرور میخواهند. این باعث کاهش حجم اطلاعات ارسالی و افزایش بهرهوری در ارتباط کلاینت و سرور میشود.
کاربردهای رایج API در دنیای امروز
امروزه APIها تقریباً در هر نوع نرمافزار یا سرویس آنلاین یافت میشوند. برخی کاربردهای مهم آن عبارتند از:
پرداخت آنلاین: درگاههای پرداخت مانند زرینپال، PayPal یا Stripe از API برای اتصال به وبسایتها استفاده میکنند.
نقشه و مکانیابی: Google Maps API به توسعهدهندگان اجازه میدهد نقشهها و مسیرها را در برنامههای خود پیادهسازی کنند.
مدیریت شبکههای اجتماعی: با استفاده از APIهای اینستاگرام، توییتر یا تلگرام میتوان پست ارسال کرد یا اطلاعات آماری دریافت نمود.
تحلیل دادهها: سرویسهایی مانند Google Analytics API امکان دسترسی به گزارشهای آماری سایتها را فراهم میکنند.
سیستمهای احراز هویت: APIهای OAuth یا Firebase Authentication به اپلیکیشنها اجازه میدهند کاربران را احراز هویت کنند.
مزایای استفاده از API
APIها به دلایل متعددی مورد توجه برنامهنویسان و شرکتهای نرمافزاری قرار گرفتهاند. برخی از مزایای کلیدی آنها عبارتند از:
افزایش سرعت توسعه: با استفاده از APIهای آماده، نیازی به نوشتن تمام بخشهای یک سیستم از ابتدا نیست.
قابلیت یکپارچهسازی بالا: APIها امکان اتصال آسان بین سرویسها و برنامهها را فراهم میکنند.
انعطافپذیری بیشتر: توسعهدهندگان میتوانند بخشهایی از برنامه را بدون تغییر در هسته اصلی، بهروزرسانی یا گسترش دهند.
مدیریت بهتر منابع: با انتقال بخشی از پردازشها به سرورهای دیگر، بار کاری سرور اصلی کاهش مییابد.
جمع بندی
در نهایت، APIها پلی میان کاربران (یا نرمافزارها) و اطلاعات هستند. آنها مانند منوهای رستوران عمل میکنند؛ بدون اینکه نیاز باشد به پشت صحنه یا آشپزخانه بروید، تنها از طریق یک رابط ساده میتوانید خدمات مورد نظرتان را دریافت کنید. شناخت و استفادهی صحیح از APIها میتواند به توسعهدهندگان کمک کند تا نرمافزارهای قدرتمندتر، سریعتر و کارآمدتری طراحی کنند.