API چیست؟ معرفی جامع رابط برنامهنویسی کاربردی
در این مقاله میخوانید
- API چیست؟
- نگاه دقیقتری بر مفهوم ای پی آی
- نحوه کار API؛ ای پی آی چگونه کار میکند؟
- ۵ نمونه از مهمترین کاربردهای API چیست؟
- انواع API از نظر سطح دسترسی
- انواع API چیست؟ معرفی API براساس نوع استفاده
- انواع پروتکل API چیست؟
- آموزش استفاده از API
- کسب درآمد از API (API Economy چیست؟)
- تأمین امنیت 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 KEY) نیاز دارید تا امکان اتصال به سرویس موردنظر را داشته باشید. پس از اتصال میتوانید از توابع موجود استفاده کرده و پاسخ را از گیرنده دریافت کنید.
یک مثال واضح از کارکرد API
اگر هنوز پاسخ سوال «ای پی آی چیست» را متوجه نشدید، به مثال زیر توجه کنید:
فرض کنید قصد سفر به یک کشور خارجی دارید. برای این کار، با یکی از آژانسهای هواپیمایی تماس گرفته تا اقداماتی مانند تهیه بلیط، رزرو هتل، دادن اطلاعات و شرایط سفر به کشور موردنظر را انجام دهد. راه ارتباطی شما به کشور مقصد همین آژانس هواپیمایی است که به نمایندگی از شما، برایتان هتل و بلیط تهیه کرده است. در واقع، شما برای رفتن به این سفر خارجی، به یک آژانس هواپیمایی دارید. همانطور که برای استفاده از خدمات تحت وب، نیاز به یک API وب دارید تا شما را به برنامه موردنظر وصل کند. API مانند آژانس هواپیمایی است که بهعنوان نماینده شما مسیر ارتباط شما را با سرویس مقصد فراهم میکند.
برای آشنایی با ویژگیها، کاربردها و تفاوت کیت توسعه نرمافزار (SDK) با رابط برنامهنویسی کاربردی (API) مقاله زیر را بخوانید.
نحوه کار API؛ ای پی آی چگونه کار میکند؟
در پاسخ به اینکه نحوه کار API چیست، باید بگوییم که کار آن بستگی به نوع API دارد. برخی از APIها قراردادی و توافقی هستند. برای مثال، شما با قرار دادن API یکنرمافزار در داخل سایتتان، درخواستی را به نرمافزار ارسال میکنید. سپس با تأیید درخواست شما توسط نرمافزار، پل ارتباطی بین سایت شما و نرمافزار برقرار خواهد شد.
با دو مثال ساده خواهیم گفت نحوه کار ای پی آی چیست:
مثال اول
زمانی که از یک فروشگاه اینترنتی خرید میکنید، برای پرداخت آنلاین، درگاههای مختلف بانکی را مشاهده خواهید کرد. یعنی فروشگاه اینترنتی موردنظر با قرار دادن API این بانکها در سایت خود، امکان اتصال سایت به درگاه بانکی را فراهم کرده است.
وقتی شما برای پرداخت آنلاین روی یکی از درگاههای بانکی کلیک میکنید، درخواستی از طریق API به وبسرور ارسال میشود. سپس وبسرور به سرور بانک موردنظر وصل شده و پس از ارسال پاسخ از سرور، شما به صفحه پرداخت بانک منتقل خواهید شد.
مثال دوم
فرض کنید یک فروشگاه اینترنتی دارید که از قابلیت حسابداری مناسبی برخوردار نیست. برای ثبت فاکتورهای فروش و سفارشات ثبت شده داخل سایت نیاز است بهصورت دستی هر یک از فاکتورها را وارد نرمافزار حسابداری خود کنید تا در امور حسابداری به مشکل نخورید. بهجای این کار، بدون نیاز به دانستن نحوه کار با نرمافزار حسابداری، میتوانید ای پی آی نرمافزار حسابداری را داخل سایتتان قرار دهید. بهاینترتیب، پل ارتباطی بین سایت و نرمافزار حسابداری برقرار خواهد شد؛ درنتیجه فاکتورهای داخل سایت، بهطور مستقیم داخل سیستم حسابداری نیز ثبت خواهد شد.
۵ نمونه از مهمترین کاربردهای API چیست؟
ای پی آی کاربردهای مختلفی دارد. در این بخش میخواهیم بررسی کنیم عمومیترین کاربردهای API چیست به زبان ساده نمونه واضح هر کاربرد را برایتان بگوییم.
API .۱ گوگل مپ (Google Maps)
احتمالاً برای یک بار هم که شده نگاهی به گوگل مپ گوشیتان انداختید تا راه را از بیراهه تشخیص دهید. سرویس اسنپ یا هر سایتی که برای تعیین دقیق آدرستان اجازه دسترسی به لوکیشن شما را میخواهد، از گوگل مپ استفاده میکند. بهعبارتی، API گوگل مپ را داخل سایتش قرار داده است.
۲. استفاده از پلتفرمهای اجتماعی
در برخی از وبسایتها برای مشاوره و پشتیبانی خرید، آیکونی از تلگرام، واتساپ یا چت وجود دارد که با کلیک روی آن، به صفحه اکانت پشتیبان در شبکه اجتماعی موردنظر منتقل خواهید شد. اگر بخواهیم بررسی کنیم نمونه محبوب و کاربردی API چیست، قابلیت استفاده از فیسبوک، توئیتر، اینستاگرام، تلگرام یا سایر شبکههای اجتماعی در سایتها را میتوان مثال زد. این ویژگی، وبسایتها را قادر میسازد تا از طریق API یکی از شبکههای اجتماعی محبوب را انتخاب کرده و دسترسی و ارتباط با کاربران را راحتتر کنند.
۳. بهرهمندی از اینترنت اشیا (IOT)
ارتباط اینترنت اشیا با API چیست؟ دستگاههای هوشمند، عملکردهای پیشرفته خود را از طریق API ارائه میدهند. برای مثال، فرض کنید سالها بعد، یخچالهای هوشمندی را به بازار وارد خواهد شد که به برنامه پخت غذا وصل بوده و همچنین دستور پخت غذا را به موبایلتان پیامک میکند. بهعبارتی، یخچال از طریق API به برنامه پخت غذا و سرویس پیامک متصل خواهد بود.
مثال واضح دیگر، دوربینهای مدار بسته است. از طریق ای پی آی دوربین به اپلیکیشن داخل گوشی وصل شده و در هر نقطهای که هستید، بهراحتی میتوانید محیط را با دوربین مداربسته چک کنید.
۴. تهیه بلیط سفر و هتل
آیا دقت کردید برای تهیه بلیط سفر در تاریخ موردنظرتان، تمام سایتهای مسافربری تعداد یکسانی از صندلیهای خالی را نمایش میدهند؟ سایتهای تهیه بلیط از طریق API و جمعآوری اطلاعات پروازهای اخیر به درخواست شما پاسخ میدهند. یعنی از طریق API دیتابیس اطلاعات پرواز، به آخرین وضعیت بلیطها از طریق مرورگر وب یا اپلیکیشن شرکتهای مسافربری دسترسی خواهید داشت.
۵. برنامههای مسیریابی
آیا میدانید برنامهای مانند نشان، بلد یا waze محبوب، چگونه مسیر را بهتر از هر راهنمایی به ما نشان میدهد؟ حتی دوربینهای کنترل سرعت و پلیس راه را هم میگوید. این امکان از طریق اتصال API به سرویسهای مختلف مثل هشدار ترافیک، پلیس راه و موقعیتیابی فراهم شده است.
برای آشنایی با شش خطر امنیتی API و نحوه ایمنسازی APIها با استفاده از WAAP مقاله زیر را از دست ندهید.
انواع API از نظر سطح دسترسی
۴ نمونه مختلف از نظر سطح دسترسی API وجود دارد:
۱. خصوصی (Private)
۲. عمومی (Public)
۳. شریکی (Partner)
۴. ترکیبی (Composite)
در ادامه، هریک از انواع API را بررسی خواهیم کرد:
API .۱ خصوصی (Private) یا داخلی (Internal)
توسعهدهندگان و برنامهنویسان از این نوع API برای بهبود خدمات یک سازمان استفاده میکنند. API خصوصی در دست افراد ثالث مانند کاربران قرار نمیگیرد. بلکه سطح دسترسی API فقط برای تیمها، سرویسها و برنامههای مختلف داخل یک سازمان مجاز است. برای حفظ امنیت و سطح دسترسی، شرکت میتواند از روشهایی مختلف احراز هویت یا رمزگذاری استفاده کند.
برای درک بهتر اینکه منظور از ای پی آی خصوصی چیست، شرکت بزرگی مانند دیجی کالا یا اسنپ را درنظر بگیرید. بخش مالی شرکت به اطلاعات مربوط به فروش و پرداخت مشتریان نیاز دارد تا گزارشهای مالی شرکت را آماده کند. بخش منابع انسانی به اطلاعاتی مانند حقوق، شرح وظایف، ساعات رفتوآمد و مرخصی کارکنان لازم دارد. بخش فروش نیز اطلاعاتی مانند موجودی محصولات، سفارشات و فرایند خرید محصولات را میخواهد. برای ارتباط بخشهای مختلف چنین سازمانهای بزرگی، شرکت یک API خصوصی در داخل سازمان تعریف میکند تا هر بخش بتواند به اطلاعات موردنیاز بخشهای دیگر دسترسی پیدا کند. بهاینترتیب، کارکنان دیجیکالا یا اسنپ، با این ای پی آی به هر بخش دسترسی دارند و از طرفی، شرکت نیز دسترسی کارکنان به API را بهطور کامل تحت نظر دارد.
API .۲ عمومی (Public) یا باز (Open)
همانطور که از اسمش پیداست، برای استفاده عموم در دسترس قرار دارد. کاربرد پابلیک API چیست؟ مثال بارز این نوع، API توییتر، فیسبوک، تلگرام، واتساپ و گوگلمپ است. بهکمک APIهای عمومی بهصورت رایگان یا با پرداخت حق اشتراک میتوانید برای ارائه خدمات و محصولات خود با سرویسها یا پلتفرمهای دیگر ارتباط برقرار کنید.
برای مثال، با اتصال API اینستاگرام به سایتتان میتوانید پستهای اینستاگرام را در داخل سایت نمایش دهید یا به محض انتشار بلاگ یا محصولی در سایتتان، پست مربوط به آن نیز بهصورت خودکار در اینستاگرام به نمایش درمیآید.
API .۳ شراکتی (Partner)
این API فقط با توافق بین شرکت ارائهدهنده و ارائهگیرنده امکان استفاده دارد. API شریکی اغلب در امور تجاری برای برقراری ارتباط بین نرمافزارهای دو شرکت مورداستفاده قرار میگیرد. یعنی شرکت ارائهدهنده به شرکایش امکان اتصال از طریق Partner API را میدهد.
فرض کنید یک فروشگاه اینترنتی دارید. برای تبلیغ محصولاتتان میخواهید از خدمات شرکتهای تبلیغاتی کلیکی استفاده کنید. برای نمایش محصولاتتان توسط این شرکتها نیاز است API آنها داخل سایت شما قرار گیرد. بهاینترتیب، میتوانید با استفاده از سایت آنها محصولاتتان را تبلیغ کنید. این مثال، نوعی از API شراکتی است.
API .۴ ترکیبی (Composite)
ای پی آی های ترکیبی برای استفاده از خدمات پیچیدهتر بهکار میروند. آنها مانند موبایلهای هوشمند امروزی در مقابل نوکیاهای دکمهای قدیمی هستند. در API ترکیبی، تعدادی از APIها بهصورت همزمان و هماهنگ درخواستی را پردازش میکند تا خروجی نهایی را به کاربر نمایش دهد. یعنی از قابلیت سرویسهای مختلف استفاده کرده و یک عملکرد یا قابلیت جدید را به نمایش میگذارد.
فرض کنید بهجای اینکه با یک برنامه وضعیت آبوهوا و با برنامهای دیگر وضعیت مسیریابی را بسنجید و از برنامهای دیگر برای دسترسی به اخبار استفاده کنید، از طریق یک API به هر سه برنامه دسترسی پیدا کنید. بهعبارتی از طریق یک API که هر یک از سه API را در خود دارد، کارتان را ساده کنید.
انواع API چیست؟ معرفی API براساس نوع استفاده
براساس نوع استفاده، ای پی آی ها را میتوان به انواع مختلف دستهبندی کرد. در ادامه، ۶ نمونه رایجترین انواع API براساس نوعی دسترسی را معرفی میکنیم.
API .۱ سیستمعامل (OS API)؛ نمونهای از API اختصاصی
این نوع API، امکان استفاده از خدمات سیستمعامل یا میانافزارها را برای اتصال به برنامههای مختلف ممکن میکند. برای مثال، APIهای دات نت مایکروسافت، API ویندوز یا لینوکس از انواع APIهای اختصاصی هر سیستمعامل است. این نوع API به برنامهنویسان امکان میدهد تا با استفاده از توابع و منابع هر سیستمعامل به فایلها و قابلیتهای سیستمعامل دسترسی پیدا کرده و آن را کنترل کنند.
API .۲ وب (Web API)؛ نمونهای از API عمومی
Web API چیست؟ در پاسخ به این سوال باید گفت این نوع API برای نمایش منابعی مانند صفحات HTML طراحی شده و با استفاده از یک پروتکل انتقال ساده در دسترس همه قرار دارد. هر آدرس URL یک API وب را فعال میکند. با استفاده از API وب، برنامهنویسان بهراحتی میتوانند به وب سرویسها متصل شوند و قابلیتهای بیشتری به برنامههای خود اضافه کنند.
API های شبکههای اجتماعی مانند پینترست، سرویسهای پرداخت الکترونیک و گوگل مپ نمونهای از APIهای وب سرویس است. برای مثال، با API پینترست، میتوانید اطلاعات اکانت پینترست خود را به وبسایتتان منتقل کنید. با API سرویس پرداخت الکترونیک، امکان پرداخت اینترنتی را در سایتتان بهوجود آورید. همچنین با API گوگلمپ، نقشه موقعیت مکانی را به سایتتان اضافه کنید.
API .۳ از راه دور (Remote API)؛ نمونهای از API عمومی
به کمک APIهای ریموت به منابع خارج از سیستمتان دسترسی پیدا خواهید کرد. در واقع دو برنامه از طریق یک شبکه ارتباطی به یکدیگر متصل میشوند. این API براساس استانداردهای وب نوشته شدند. مانند Java Database Connectivity API و Java Remote Method Invocation API که دو نمونه از رابطهای برنامهنویسی برنامه ریموت یا Remote API هستند.
API .۴ برنامه (Program API)؛ از انواع APIهای اختصاصی
ای پی آی برنامه مبتنی بر فناوری RPC یا فراخوانی از راه دور هستند. از طریق آن جزیی از یک برنامه، سرویس یا سیستمعامل برای یک نرمافزار کاربردی قابل دسترسی خواهد بود. این API بهصورت کتابخانه یا فریمورکهای برنامهنویسی است که برای استفاده از آنها در برنامههای دیگر توابع و متغیرهایی ارائه میدهد. درواقع، برنامهنویسان با استفاده از API برنامه میتوانند بدون نیاز به نوشتن کدهای جزیی، عملکرد موردنظرشان را به برنامه اضافه کنند.
برای مثال، SDK یا کیت توسعه نرمافزار (software Development Kit) نوعی API برنامه است که کتابخانه، ابزار و کدهای مختلفی در اختیار برنامهنویس قرار میدهد. یعنی شما با استفاده از SDK توییتر به جای API وب توییتر، دیگر نیازی به ایجاد درخواستهای مستقل HTTP ندارید و بهراحتی میتوانید از دستورات و کتابخانههای موجود در SDK توییتر کارتان را راه بیندازید.
سری WS مایکروسافت جزو این دسته از APIها قرار میگیرند. همچنین API گرافیکی مثل Opengl و Direct X نوعی از APIهای برنامه هستند که به برنامهنویسان امکان رسم تصاویر سهبعدی در اپلیکیشنها را میدهد. Android SDK نیز نمونه دیگری از انواع API برنامه است که کار توسعه نرمافزار را برای دولوپرهای اندروید سادهتر میکند.
API .۵ سرور؛ پل ارتباطی بین برنامهنویس و سرور
از انواع API میتوان API سرور را نام برد. این API مانند یک پل ارتباطی بین برنامهنویسان و سرور است و به برنامهنویسان امکان استفاده از منابع و خدماتی را میدهد که در سرور وجود دارد. API سرور به شما این امکان را داده تا با استفاده از درخواست و پاسخی که تحت استانداردهایی مانند HTTP برقرار میشود، از منابع موجود در سرور استفاده کنید.
برای مثال، فرض کنید یک وبسرویس در اختیار دارید که لیست کاربران را نمایش میدهد. شما میتوانید از طریق API سرور، درخواست دریافت لیست کاربران را به سرور ارسال کرده و آن را از سرور دریافت کنید.
API .۶ پایگاه داده (Database API)؛ پل اتصال میان برنامهنویس با دادههای دیتابیس
ای پی آی پایگاه داده از انواع API است که امکان اتصال برنامهها به دیتابیس را میدهد. بهاینترتیب، برنامهنویسان میتوانند با برنامههای خود دادههای دیتابیس را بهروزرسانی کنند. برای مثال، API دیتابیس دروپال به توسعهدهندگان این امکان را میدهد تا کوئریهای یکپارچه برای دیتابیسهای مختلف بنویسند.
API پایگاه داده برای انواع پایگاه دادههایی مانند MYSQL ،Oracle و MongoDB قابل استفاده است.
هر آنچه باید درباره کاربرد، انواع و ویژگیهای پایگاه داده بدانید را در مقاله زیر بخوانید.
انواع پروتکل API چیست؟
پروتکل API نوعی قرارداد استانداردسازی بین سرویسهای مختلف است. برای ایجاد ارتباط یکپارچه بین سیستمهای مختلف و سیستمعاملهای گوناگون به پروتکلهای API یا قرارداد نیاز داریم. اگر میخواهید بدانید استاندارد API چیست، در ادامه نیاز است با رایجترین پروتکلهای API آشنا شوید.
۱. پروتکل (Service Object Access Protocol (SOAP
پروتکل SOAP پروتکلی برای انتقال اطلاعات بین سیستمهای مختلف است که براساس http یا https کار میکند.
پروتکل SOAP از قوانین دقیقی برای ارسال درخواست و پاسخ اپلیکیشنهای وب پیروی میکند. هر پیام در این پروتکل از دو بخش هدر و بدنه تشکیل شده است. محتوای بخش بدنه بهصورت قالب متنی XML است. با استفاده از این پروتکل، اغلب میتوانید برای اتصال به نرمافزارهای مبتنی بر وب استفاده کنید. APIهای درگاه پرداخت و مدیریت ارتباط با مشتری نمونهای از پروتکل SOAP است.
یک صندوق پستی را درنظر بگیرید. نامهای در این صندوق انداخته تا توسط پستچی به مقصدتان برسد. نامه شما بهصورت یک بسته کاغذی بستهبندی شده و از طریق پست ارسال میشود. اگر بستهبندی کاغذی را همان پیامهای متنی XML درنظر بگیریم، ارسال از طریق پست، پروتکل SOAP است.
مزایای پروتکل SOAP
- طبق توابع عمل میکند.
- قوانین پیچیدهتری برای توسعهدهندگان دارد.
- امنیت بیشتری برای وباپلیکشنها ایجاد میکند.
- با فرمت XML کار میکند. این فرمت از تصاویر، نمودار، تعداد و متون پشتیبانی میکند.
پروتکل Remote Procedure Call (RPC) RPCC
منظور از RPCC در پروتکل API چیست؟ این پروتکل اغلب در فراخوانیهای ریموت مورد استفاده قرار میگیرد. یعنی مانند یک تلفن، که ارتباط شما را با شخصی در پشت خط تلفن برقرار میکند، در پروتکل RPC نیز برنامه از سروری که در سیستم دیگری در شبکه قرار دارد، درخواست میشود.
برای درک بهتر، فرض کنید در یک شهر دورافتاده هستید و قصد دارید با دوستتان در شهر دیگر بهوسیله تلفن ارتباط برقرار کنید. با تلفن دوستتان تماس میگیرید، ارتباط شما برقرار شده و پس از پایان صحبت، تلفن را قطع میکنید.
در این مثال، شما درخواست اول را انجام دادید و منتظر پاسخ دوستتان ماندید. سپس او نیز تماس شما را دریافت کرد و پاسختان را داد. در پروتکل RPC نیز مشابه همین اتفاق رخ میدهد. یک کلاینت، درخواستی را روی سرور دیگر (تلفن دوستتان) ارسال میکند و سرور(دوستتان) نیز درخواست او را پاسخ میدهد.
مزایای PRC Web API
برای اضافه کردن دستورات و رویهها گزینه مناسبی هستند.
- هر دو نوع فرمت JSON و XML را پشتیبانی میکند.
- دستور CRUD برای ایجاد ، خواندن، بهروزرسانی و حذف دادهها استفاده میشود.
- در PRC دستور GET فقط برای دریافت اطلاعات و دستور POST برای اصلاح اطلاعات بهکار میرود.
سه پروتکل زیر بهعنوان اعضای خانواده پروتکل RPC شناخته شدند:
۱. پروتکل XML-RPC
پروتکل XML-RPC برای انتقال دادهها در فرمت XML بهکار میرود. XML-RPC قدیمیتر از SOAP بوده اما سادهتر و نسبتاً سبکتر است. زیرا از حداقل پهنای باند استفاده میکند.
۲. پروتکل JSON-RPC
JSON-RPC نیز نوعی درخواست از راه دور است، اما به جای فرمت XML برای ارسال پاسخ از JSON (JavaScript Object Notation) استفاده میکند.
۳. پروتکل gRPC
این فریمورک جهانی متنباز از پروتکل SOAP جدیدتر است و از تکنولوژی http/2 برای اتصال و ارسال دادهها استفاده میکند. gRPC در سال ۲۰۱۵ توسط گوگل معرفی شد. این پروتکل به جای استفاده از XML یا JSON از protobuf بهعنوان زبان توصیف استفاده میکند. با این پروتکل، میتوانید متدها و دستورات را بهطور مستقیم از سرور اپلیکیشن در کامپیوتر دیگر، فراخوانی کنید. gRPC کار ایجاد و توزیع سرویسها و اپلیکیشنها را سادهتر میکند.
پروتکل (REST (Representational State Transfer
اگر خاطرتان باشد، در قسمت بالاتر گفتیم Web API چیست. این API اغلب به عنوان RESTful API شناخته شده است. سیستمهای RESTful برخلاف SOAP که فقط از XML پشتیبانی میکند، قالبهای مختلف مانند متن ساده تکست، XML، YAML، HTML و JSON را نیز ارائه میدهد. APIها از درخواستهای HTTP مانند GET ،PUT ،HEAD ،POST ،PATCH ،CONNECT TRACE ،OPTIONS و DELETE برای انجام عملیات استفاده میکنند.
برای درک بهتر این پروتکل، فرض کنید یک سرویس وب در اختیار دارید که منابعی مانند کتابخانه، نوشته، لیست کاربران و موارد دیگر را در دسترستان قرار داده است. با ارسال یک درخواست GET از طرف شما، سرور یک منبع جدید و شناسه یکتا ایجاد کرده و پاسخ درخواستتان را برایتان ارسال میکند.
در پروتکل REST، منابع با URL شناسایی میشوند و اطلاعات برای هر منبع در قالب پیامهای HTTP و ساختارهایی مانند JASON یا XML ارسال میشود.
قالب متنی JSON یکی از قالبهای سبک در تبادل داده است و دستورالعمل آن براساس استاندارد ECMA-262 3rd Edition است. فرمت فایلهای JSON بهگونهای است که آن را میتوان برای هر زبان برنامهنویسی استفاده کرد. به لطف همین فرمت JSON، پروتکل REST محبوبیت ویژهای پیدا کرده است. زیرا امکان استفاده برای فناوریهای مختلف را بهراحتی فراهم میکند.
مزایای REST Web API
- برای وباپلیکیشنها بهینه شدند.
- با رابط یکنواخت واحد کار میکند.
- با قالب متنی و عددی JASON کار میکند.
- توسط دیتای داده شده عمل میکند نه توابع.
- برای ایجاد برنامه، پهنای باند کمی مصرف میکند.
- برای توسعهدهندگان دستورالعملهای ساده و جامع برای ساخت برنامههای کاربردی دارد.
آموزش گامبهگام ساخت REST API با Prisma و PostgreSQL را در مقاله زیر بخوانید.
پروتکل GraphQL؛ زبان کوئریهای سرور
منظور از GraphQL در پروتکل API چیست؟ GraphQL نوعی زبان کوئری مبتنی بر سرور است که به توسعهدهندگان این امکان را داده تا درخواستهای دقیقی را برای دریافت داده از سرور ارسال کنند. برخلاف پروتکل REST که برای هر منبع درخواست جداگانه ارسال میکند، در پروتکل GraphQL شما میتوانید فقط یک درخواست واحد ارسال کنید تا سرور اطلاعات موردنیازتان را پاسخ دهد.
بهعبارتی، شما میتوانید در یک کوئری، ساختاری از درخواستهای موردنظرتان بسازید و فیلدهای خاصی را برای بازگرداندن پاسخ درخواست خود تعیین کنید. درنهایت، سرور GraphQL با بررسی ساختار درخواست و معماری دادههایی که به او دادید، دیتای موردنظر را جمعآوری کرده و بهصورت پاسخ نهایی تحویلتان میدهد.
شرکتهای بزرگی مانند شاپیفای (Shopify)، یِلپ (Yelp)، گیتهاب (GitHub)، کورسِرا (Coursera) و نیویورکتایمز (The New York Times) از پروتکل GraphQL برای ساخت API استفاده میکنند. بهعنوان پاسخ نهایی به این سوال که استاندارد API چیست، باید بگوییم که استاندار API براساس پروتکل آن تعیین میشود.
آموزش استفاده از API
پس از اینکه دریافتیم مفهوم و کارایی API چیست، نوبت به استفاده از API میرسد. برای دریافت و استفاده از API مراحل زیر را پیشرو دارید:
۱. اطلاعات و مستندات لازم را دریافت کنید
منظور از اطلاعات لازم، آدرس ورودی، Endpoint و نوع درخواستهایی است که قصد ارسال آن را دارید.
۲. اطلاعات و محتوای موردنیاز را بررسی کنید
در مرحله دوم، نیاز است محتواهایی که قصد دریافت آن را دارید، بررسی کنید. برای مثال اگر قصد دریافت لیست کاربران را دارید، نیاز است بدانید فیلدهای موردنیاز برای دریافت این اطلاعات چیست.
۳. درخواستهای موردنظرتان را ایجاد و ارسال کنید
در این مرحله، پس از دانستن نوع درخواستها و فیلدهای موردنیاز، میتوانید درخواستهای موردنظرتان را بسازید. باتوجه به نوع API ممکن است یکی از دستوراتی مانند GET، POST، PUT و DELETE ارسال کنید.
پس از ایجاد درخواست، نیاز است با استفاده از کتابخانه یا ابزار برنامهنویسی درخواستتان را ارسال کنید.
۴. پاسخ را دریافت و پردازش کنید
در آخرین مرحله، پس از ارسال درخواست، پاسخی را از سرور دریافت خواهید کرد. این پاسخ بهصورت فایل JSON بوده و اطلاعات موردنیاز را براساس درخواستی که ارسال کردید، تحویلتان میدهد.
کسب درآمد از API (API Economy چیست؟)
مفهوم API Economy به تبادل API بین سرویسدهنده و مشتری اشاره دارد. زمانی که شرکتی از سرویس یا خدمات دیتای سرویسهای دیگر استفاده کرده و درعوض API میفروشد، مفهوم API Economy شکل گرفته است.
سه مثال ساده برای درک مفهوم API Economy
بسیاری از شرکتها در ابتدا API را بهصورت رایگان ارائه میدهند تا مخاطبان و طرفداران بیشتری برای برند خود جذاب کنند. پس از مدتی با فروش آن به کسانی که به API نیاز دارند، کسب درآمد میکنند.
۱. یک مثال واضح از API Economy شرکت اوبر است. برای مثال، اوبر یک API قدرتمند به توسعهدهندگان میدهد که امکان دسترسی به خدمات حملونقل را ممکن میسازد. شرکتهای دیگر مانند گوگل مپ میتوانند از این API استفاده کنند و خدمات خود را با سرویس اوبر یکپارچه کنند.
۲. مانند کاری که ترب برای فروشگاههای اینترنتی میکند. ترب یا ایمالز با دراختیار قرار دادن API اختصاصی خود به فروشگاههای اینترنتی این امکان را میدهند تا فروشگاههای اینترنتی بتوانند از طریق سایت ترب و ایمالز، فروش خود را افزایش دهند. بهاینترتیب، ترب نیز از فروش API و شارژ ماهانه توسط فروشگاههای اینترنتی درآمد بیشتری خواهد داشت.
۳. یک شرکت پخش کتاب را درنظر بگیرید. این شرکت برای مدیریت بهتر و رضایت کاربران، میتواند سرویسی به مشتریان خود معرفی کند که در بستر یک فضای ابری کاربران بتوانند موجودی کتاب را چک کنند. توسعه و اجرای چنین برنامهای ممکن است هزینهبر باشد و از طرفی به تخصص برنامهنویسی نیاز دارد. در این شرایط، شرکت پخش کتاب میتواند یک API برای دسترسی به موجودی کتابها را تعریف کند. با این API مشتریان اطلاعات مربوط به موجودی کتابها را در یک مجموعه در اختیار خواهند داشت.
تأمین امنیت API؛ چگونه امنیت یک API را فراهم کنیم؟
پیش از هرچیز، سعی کنید API خود را روی سروری جداگانه و متفاوت از دیتابیسی که به آن وصل است، راهاندازی کنید. همچنین استفاده از SSL و TLS نیز دسترسی هکرها به اطلاعاتتان را غیرممکن میکند. استفاده از این گواهی اعتماد بین کاربر و سرور را نیز بیشتر خواهد کرد.
علاوهبراین، میتوانید دسترسی به API را فقط به افراد مجاز بدهید. برای این کار میتوانید از توکنهایی مانند OAuth یا JWT برای تایید هویت کاربران استفاده کنید. فیلتر کردن و اعتبارسنجی دادههای ورودی کاربران نیز از حملاتی مانند XSS جلوگیری میکند.
مزایای API چیست؟
API علاوهبراینکه امکان دسترسی به منابع، مدیریت و یکپارچه سازی برنامهها را سادهتر میکند، امن و قابل کنترل است. همین دو ویژگی یعنی امنیت و قابلیت کنترل کردن، آن را به یک تکنولوژی باارزش تبدیل کرده است.
همچنین برخورداری از لایه انتزاعی (Layer of Abstraction) کار را برای برنامهنویسان راحت کرده است. Layer of Abstraction به برنامهنویسان کمک میکند تا بدون درگیر شدن با پیچیدگیهای فنی و دردسرهای کدنویسی، تجربه بهتری از برنامه خود با API ارائه دهند.
مفهوم Layer of Abstraction را میتوان به مهارت رانندگی تشبیه کرد. برای مهارت رانندگی نیازی به دانستن جزییاتی مانند نحوهی کارکرد موتور، سیستم ترمز و جعبه گیربکس ندارید و بااستفاده از ابزارهای سادهای مانند فرمان، دستگیرهها و پدالها، میتوانید ماشین را کنترل کنید. Layer of Abstraction نیز کار برنامهنویسی را برای برنامهنویسان راحتتر میکند تا بدون نیاز به دانستن جزییات، برنامه سادهتر و کاربردیتر طراحی کنند. در پاسخ به اینکه محبوبترین مزایای API چیست، میتوان گفت:
امکان اتصال و تعامل با سرویسهای خارجی
- افزایش امنیت و کنترل
- صرفهجویی در زمان و هزینه
- افزودن امکانات و توسعه برنامه
- سازگاری، هماهنگی و یکپارچه کردن برنامهها
همچنین APIها در حفظ حریم خصوصی کاربر یک لایه اضافی ایجاد میکند. احتمالاً تابهحال تجربه کردید، زمانی که از سایت یا اپلیکیشنی برای اولین بار بازدید میکنید، وبسایت یا اپلیکیشن از طریق API از شما میخواهد اجازه دسترسی به موقعیت و آدرستان را بدهید. بهاینترتیب، شما میتوانید این درخواست را رد یا تایید کنید.
API خود را روی سرور مجازی قدرتمند پارس پک ایجاد کنید
سرور مجازی پارس پک به عنوان یک زیرساخت قدرتمند برای میزبانی از اتصال انواع API، بستری امن و مطمئن در اختیارتان قرار میدهد. شما میتوانید بهسرعت و بهراحتی API خود را به سرورهای مجازی پارس پک متصل و منابع سختافزاری موردنیازتان را تامین کنید. سرورهای مجازی پارس پک در دو نوع لینوکس و ویندوز ارائه میشود. شما میتوانید متناسب با نیازتان آن را ارتقا دهید. اگر بهدنبال یک راهکار سفارشی و یکپارچه برای مدیریت APIهای خود و اتصال آنها روی یک سرور هستید، سرورهای مجازی پارس پک بهترین و قدرتمندترین بستر را برای این کار برایتان فراهم خواهند کرد.
جمعبندی
API چیست؟ API مانند یک جاده هموار، راه ارتباط برنامهنویسان با برنامه و سرویسهای مختلف را برقرار میکند. در این مقاله، بهطور کامل پاسخ این سوال را دادیم. انواع API و پروتکلهای مربوط به آن را بررسی کردیم. کاربردهای مهم API را مثال زدیم و در آخر نگاهی به مزایای API انداختیم. از اینکه تا انتهای این مقاله همراه ما بودید، از شما متشکریم. درصورتیکه برای ایجاد API روی سرور نیاز به راهنمایی دارید، همین حالا میتوانید از طریق تیکت یا تماس تلفنی از مشاوره کارشناسان پارس پک استفاده کنید. امیدواریم این مقاله به شما در درک مفهوم API و کاربردهای منحصربهفرد آن کمک کرده باشد.
سؤالات متداول
API .۱ چیست؟
API مخفف Application Programming Interface یا رابط برنامهنویسی کاربردی، پل ارتباطی برای برقراری ارتباط بین نرمافزارها و سرویسهای مختلف است.
۲. تفاوت بین نرمافزار و API چیست؟
API برای استفاده و ارتباط با نرمافزار بهکار میرود. درحالیکه نرمافزار یک سیستم کامل از کدها، برنامهها و دادههایی بوده که برای اجرای یک وظیفه و کارکرد خاص طراحی شده است.
۳. مهمترین و رایجترین کاربرد API چیست؟
برنامهنویسان به کمک API شبکههای اجتماعی مانند اینستاگرام یا تلگرام امکانات و قابلیتهای بیشتری به وبسایت یا اپلیکیشن خود اضافه میکنند. همچنین هنگام پرداخت آنلاین از فروشگاههای اینترنتی، درحال استفاده از API درگاه بانکی موردنظر هستید.
۴. Web API چیست؟
Web API برای ارتباط و یکپارچه کردن سرویسهای تحت وب با استفاده از پروتکل HTTP بهکار میرود و برای ارسال درخواست و دریافت پاسخ از فرمتهای استاندارد مانند JSON یا XML استفاده میکند.
۵. API Key چیست و چه کاربردی دارد؟
API Key یک رشته از اعداد و حروف است که برای شناسایی و احراز هویت بهعنوان مجوز برقراری ارتباط بین سرویسها بهکار میرود. با استفاده از API Key اجازه دسترسی به منابع و انجام عملیاتهای خاص برنامهنویسی را خواهید داشت.
۶. چگونه با استفاده از API اپلیکیشن ایجاد کنیم؟
- یک API را انتخاب کنید (باید API پیدا کنید که بتوانید آن را در کسبوکارتان بگنجانید).
- یک API Key از API دهنده دریافت کنید.
- یک سرویس گیرنده HTTP API ایجاد کنید تا با استفاده از کلید API، ساختاری صحیح به درخواستهای خود دهید.
- اسناد API را مرور کنید.
- ریکوئستی برای Endpoint بنویسید.
- اپلیکیشن خود را وصل کنید یا از آن در کدنویسی خود استفاده کنید.
۷. آیا API رایگان است؟
در برخی موارد ممکن است استفاده از Open API رایگان باشد. بااینوجود، رایگان بودن این سرویس بستگی به ارائهدهنده آن دارد.
۸. API Web یا Web Service؟ کدام یک بهتر است؟
همه وبسرویسها نوعی API هستند. وبسرویس فقط از پروتکلهای HTTP پشتیبانی میکند. API از هر دو پروتکل HTTP و HTTPS پشتیبانی میکند. فرمت وبسرویس بهصورت XML بوده درحالیکه فرمت API از XML و JSON است.