فرض کنید صاحب رستورانی هستید و در رستوران شما مشتریان زیادی نشستهاند و مشغول نگاه کردن به منوی رستوران و انتخاب غذا میباشند. در آشپزخانه رستورانتان نیز افراد مشغول فعالیت هستند تا غذاهای موجود در منو را آماده کنند. بدون حضور پیشخدمتی که سفارش را از مشتریان دریافت کند، آن را به آشپزخانه منتقل نماید و سپس سفارش آمادهشده را به میز مشتری برساند؛ عملاً امکان ارائه سرویس توسط شما به مشتریانتان وجود نخواهد داشت. در دنیای دیجیتال نیز نیاز است تا میان کاربران و سرورهای ارائهدهنده خدمات یا سرورهای ذخیرهسازی اطلاعات ارتباط برقرار شود تا درخواستهای کاربران به این سرورها منتقل شده و پاسخ آن درخواستها از سمت سرور به کاربران برسد. بنابراین در دنیای دیجیتال نیز به پیشخدمتی نیاز است که این وظیفه را انجام دهد: در دنیای دیجیتال به این پیشخدمت، API میگویند!
API چیست؟
API مخفف اصطلاح رابط برنامهنویسی اپلیکیشن (Application Programming Interface) است. API، نوع فراخوانی یا درخواست، چگونگی فراخوانی، فرمت مورد نیاز دادهها، اصول فراخوانی و موارد دیگر را مشخص میکند. همچنین امکانی را فراهم میکند تا کاربران بتوانند کارکرد فعلی آن را تا حدی گسترش دهند. میتوان گفت که پرسیدن سوال API چیست، پرسش دقیقی نیست. یک API صرفاً رابطی میان دو موجودیت پیادهسازیشده است. پرسش اصلی که باید بپرسیم این است که چه APIی در اختیار داریم و ماهیت آن API چیست؟
به صورت کلی، API موجودیتی است که بتواند دو کار را انجام دهد: اول، باید مجموعهای از عملیات را به وسیله ورودیها و خروجیها انجام دهد؛ دوم، باید امکان پیادهسازی مجدد را بدون تأثیرگذاری بر کاربران فراهم نماید. معمولاً، تعریف مذکور به وسیله شرط سوم، یعنی اینکه API باید عنصری را به یک زبان برنامهنویسی یا مجموعهای از زبانهای برنامهنویسی بیفزاید، محدودتر میشود. برخیها بر این باورند که این شرط سوم بیش از حد محدودکننده است، زیرا مواردی مانند مجموعه دستورالعملها را حذف مینماید. از سوی دیگر، برخی بر این باور هستند که شرط سوم، شرط اصلی است و در صورتی که حذف شود، تعریف بیش از حد گسترده خواهد شد. در هر حال، هر کدام از تعاریف مذکور را بپذیریم، APIها را میتوان در دو دسته کلی جای داد: APIهای تجهیزات و APIهای تحت وب.
یک API تجهیزات، APIی است که معمولاً ارتباط را در سطح تجهیزات، میان سختافزار و نرمافزار و عناصر مرتبط به آنها برقرار مینماید. از سوی دیگر، API تحت وب، متفاوت است؛ زیرا به تجهیزات این امکان را میدهد تا از طریق زبانهای برنامهنویسی، ساختارها و معماریهای متفاوت، با یکدیگر ارتباط برقرار کنند.
APIهای تحت وب، موجودیتهایی کاملاً جوان هستند و استفاده از آنها تنها یک دهه است که رواج یافته است. شرکتهایی مثل Salesforce، eBay، Flicker، Facebook و Google، شرکتهایی هستند که نقش تأثیرگذاری در ترویج APIها ایفا کردهاند. شاید بتوان گفت، محبوبترین API تحت وب، Google Maps است.
نحوه کارکرد API
اجازه دهید تا کارکرد API را با مثالی توضیح دهیم. فرض کنید شما در حال طراحی اپلیکیشنی جهت ارائه خدمات استعلام و پرداخت قبوض به کاربران خود هستید. در صورتی که اطلاعات قبوض و اطلاعات بانکی بر روی سرورهای خودتان موجود باشد؛ ارتباط میان درخواست کاربر و سرور شما معمولاً بدون نیاز به API برقرار میشود. اما در صورتی که این اطلاعات در سرورهای شما موجود نباشد و تحت مالکیت سازمان دیگری باشد، به API آن سازمان نیاز خواهید داشت. شما صفحهای را در اپلیکیشن خود طراحی خواهید کرد تا اطلاعات کاربر شامل شناسه قبض و شناسه پرداخت و سایر دادههای مورد نیاز برای فراخوانی API توسط کاربر وارد شود؛ سپس API درخواست شما را به سرور انتقال داده و پاسخ سرور را به اپلیکیشن شما برمیگرداند. شما نیز پاسخ دریافتی از سرور را به شیوهای قابل فهم به کاربر نمایش میدهید. برای پرداخت قبض نیز، فرآیند مشابهی طی خواهد شد.
امنیت بالای APIها
APIها، سطح بالایی از امنیت را برای کاربران، توسعهدهندگان، مالکین اطلاعات و ارائهدهندگان خدمات فراهم میکند. زیرا سرور هرگز نمیتواند تمام اطلاعات کاربر اپلیکیشن شما را مشاهده کند و از طرف دیگر نیز اپلیکیشن شما یا کاربر نیز نمیتواند به تمام اطلاعات سرور دسترسی داشته باشد. به جای آن، هر کدام با تکههای کوچکی از دادهها ارتباط برقرار کرده و تنها موارد ضروری و مشخص را بهاشتراک میگذارند. کاربر شما تنها شناسه قبض و شناسه پرداخت خود را وارد مینماید، شما به کاربر میگویید که چه چیزی در ازای نمایش اطلاعات دریافتی از سرور از او میخواهید و سرور نیز صرفاً اطلاعات درخواستی کاربر را به شما و او برمیگرداند.
APIهای مدرن
در طول سالهای گذشته، تعریف API محدود به هرگونه اتصال صرف به یک اپلیکیشن بود. با این حال، اخیراً، ویژگیهای جدیدی به APIهای مدرن اضافه شده که آنها را بسیار مفید و باارزش میکند:
- APIهای مدرن مبتنی بر استانداردها (معمولاً HTTP و REST) هستند که برای برنامهنویسان مطلوب بوده و به راحتی قابل دسترسی و درک میباشند.
- آنها بیشتر به صورت محصول در نظر گرفته میشوند تا کد. آنها برای مصرف مخاطبان خاصی (برای مثال، برنامهنویسان موبایل)، طراحی، مستند و نسخهبندی میشوند که کاربران میتوانند انتظارات مشخصی از نگهداری و چرخه عمر آنها داشته باشند.
- به دلیل اینکه این APIها استانداردتر هستند، امنیت و حاکمیت و همچنین نگهداری و مدیریت آنها آسانتر است.
- همانند هر محصول نرمافزاری دیگر، APIهای مدرن چرخه عمر توسعه نرمافزاری خاص خود را برای طراحی، تست، ساخت، مدیریت و نسخهدهی دارند.
API و بانکداری باز
APIها در شکلگیری و ترویج بانکداری باز نقش اصلی را ایفا میکنند. بدون وجود APIها عملاً آزادسازی سرویسهای بانکی و پرداخت برای استفاده فینتکها و سایر نهادهای ثالث امکانپذیر نیست. در نتیجه آنها نمیتوانند که بر پایه سرویسهای بانکی، محصول یا خدمت خود را طراحی و عرضه نمایند. شرکت فرابوم به عنوان اولین و بزرگترین پلتفرم بانکداری باز ایران از طریق پلتفرم بوم، سرویسهای بانکی و غیربانکی متنوعی را به صورت API، تجمیع و پردازش نموده و آنها را در اختیار شما قرار داده است. شما با استفاده از APIهای فرابوم، میتوانید به طیف وسیعی از سرویسهای بانکی و غیربانکی دسترسی داشته باشید و از آنها در طراحی محصولات و خدمات خود بهره ببرید. برای آشنایی بیشتر با لیست سرویسهای پلتفرم بوم، به صفحه خدمات مراجعه نمایید.