هوش تجاری
API چیست؟
احتمالاً اصطلاحات API ،Public API یا Web API قبلا به گوشتان خورده است. این اصطلاحات اغلب توسط شرکتهای نرمافزاری هنگام صحبت درباره یک برنامه، سیستمعامل یا وبسایت مورد استفاده قرار میگیرند. در دنیای امروز از آنها در همه جا استفاده میشود و سود فوقالعاده ای را به همراه دارند. اما آیا تا به حال فکر کردهاید که رابط برنامهنویسی برنامه کاربردی در واقع چیست یا چگونه از آن استفاده میشود؟
API چیست؟
API یا رابط برنامهنویسی برنامه کاربردی (Application Programming Interface) مجموعهای از توابع است که به برنامهها امکان دسترسی به دادهها و تعامل با اجزای نرمافزار خارجی، سیستمعاملها یا سرویسهای خرد را میدهد.
API پاسخ کاربر را به یک سیستم ارائه میدهد و پاسخ سیستم را به کاربر ارسال میکند. شما “افزودن به سبد خرید” را کلیک میکنید و API به سایت میگوید که شما محصولی را به سبد خرید خود اضافه کردهاید. وبسایت محصول را در سبد خرید شما قرار میدهد و سبد خرید شما به روز میشود.
ممکن است در رابطه با رابط برنامهنویسی برنامه کاربردی اصطلاح “سرویسهای خرد” را بشنوید. اما اینها یکسان نیستند. سرویسهای خرد یک سبک یا معماری هستند که عملکردها را در یک برنامه وب تقسیم میکنند. در حالی که API چارچوبی است که توسعهدهندگان با یک برنامه وب تعامل میکنند. سرویسهای خرد میتوانند در واقع از API برای برقراری ارتباط بین یکدیگر استفاده کنند.
رابط برنامهنویسی برنامه کاربردی به یک توسعهدهنده اجازه میدهد تا برای ارسال یا دریافت اطلاعات، “تماس” یا “درخواست” خاصی برقرار کند. این ارتباط با استفاده از یک زبان برنامهنویسی به نام “JSON” انجام میشود. همچنین میتواند برای انجام یک عمل تعریفشده مانند به روزرسانی یا حذف دادهها مورد استفاده قرار گیرد. چهار روش درخواست اصلی وجود دارد که میتوان با API انجام داد:
- GET – اطلاعات را جمع میکند (کشیدن همه کدهای کوپن)
- PUT– دادههایی را به روز میکند (به روزرسانی قیمتگذاری محصول)
- POST – ایجاد میکند (ایجاد یک گروه جدید محصول)
- DELETE – (حذف یک پست وبلاگ)
JSON چیست و چرا از آن استفاده میشود؟
JSON (JavaScript Object Notation) برای نمایش دادهها در یک سرور استفاده میشود. خواندن آن توسط انسان و درک آن برای ماشینآلات و برنامهها آسان است.
این زبان قابل درک است زیرا در جفت کلید یا مقدار، با کلید در سمت چپ و مقدار در سمت راست، تولید میشود. کلیدها یک شیء ثابت هستند که توسط برنامه تعریف شدهاند و همان “دسته” باقی خواهند ماند. در حالی که مقادیر منحصر به فرد مانند “پیراهن” خواهند بود.
درخواست API چیست؟
برای عملکرد API چندین مولفه وجود دارد. اجازه دهید به صورت جداگانه این موارد را مرور کنیم و نحوه استفاده از آنها برای ایجاد درخواست را بررسی کنیم.
- نقطه پایان: دو قسمت کلیدی برای یک نقطه پایانی وجود دارد که هنگام درخواست رابط برنامهنویسی برنامه کاربردی استفاده میشود. یکی از آنها URL و قسمت دوم مسیر است. مسیر بسته به آنچه که میخواهید به انجام برسانید متفاوت خواهد بود.
وقتی این دو قسمت را کنار هم قرار میدهیم، یک نقطه نهایی کامل بدست میآوریم. متغیرها نیز اجزای منحصر به فردی برای یک نقطه پایانی هستند و بسته به اطلاعات فروشگاه شما متفاوت خواهند بود. میتوانید یک متغیر را با براکتهای باز و بسته “{}” مشاهده کنید.
- سرتیتر یا هدر: هدرها اطلاعات را به مشتری و سرور ارائه میدهند. مثالهای متداول یک سرصفحه، احراز هویت معتبر مانند “Auth Token” یا “Client ID” است. این اعتبارنامهها هنگام ایجاد حساب API به طور خودکار در اختیار شما قرار میگیرند. هدر دیگری با نام “Content Type” شناخته میشود که به سرور در مورد نوع ارسال محتوا اطلاع میدهد. به عنوان مثال، یک نوع محتوای متداول “application / json” است که به سرور اطلاع میدهد که ما دادههای JSON را ارسال می کنیم.
- روش: روشها اقداماتی هستند که هنگام ارسال درخواست انجام میشوند. در مورد GET ، PUT ، POST و DELETE که در ابتدا به آنها اشاره کردیم، فکر کنید. اینها همه روشهای API هستند.
- دادهها: دادههای درخواست، که معمولاً “body” نیز نامیده میشوند، اطلاعاتی هستند که به سرور ارسال شده یا توسط آن برمیگردند. متن اصلی یک درخواست گاهی قبل از تحویل به اطلاعات خاصی نیاز دارد. مثالی از این موارد این است که اگر شما در حال ویرایش یک محصول هستید، قبل از ایجاد هرگونه تغییر، شناسه محصول مورد نیاز خواهد بود.
REST و SOAP API چیست؟
در حالی که رابط برنامهنویسی برنامه کاربردی از یک سری قوانین خاص پیروی میکند که نحوه ارتباط برنامهها با یکدیگر را تعیین میکنند، REST و SOAP نحوه ارائه رابط برنامهنویسی برنامه کاربردی را تعریف مینمایند. هر یک از نظر عملکرد شبیه به یکدیگر هستند اما چندین تفاوت کلیدی و موارد استفاده دارند.
REST مخفف کلمه “Reflection State Transfer” و مجموعه قوانینی است که توسعهدهندگان هنگام ایجاد API از آن پیروی میکنند. همانطور که قبلاً توضیح دادیم، REST با استفاده از JSON خوانده میشود. یکی از این قوانین، این است که رابط برنامهنویسی برنامه کاربردی باید به گونهای طراحی شود که استفاده از آن آسان باشد و برای توسعهدهندگان منطقی باشد. مثالی از عدم رعایت این قانون داشتن نقطه پایانی محصول “prod_839” به جای فقط “محصولات” است. این میتواند باعث شود کار با API آن تقریبا ناخوشایند باشد.
SOAP یا Simple Object Access Protocol یکی دیگر از موارد طراحی شده برای سرویسهای وب است؛ به جای JSON معمولی که REST API استفاده میکند. SOAP از زبانی استفاده میکند که به عنوان زبان علامتگذاری قابل گسترش (XML) شناخته میشود. XML به گونهای طراحی شده که قابل خواندن توسط ماشین و انسان باشد. SOAP یک استاندارد قوی از قوانین، مانند ساختار پیامرسانی و قرارداد ارائه درخواست یا پاسخ را دنبال میکند.
این مقاله به طور کلی به استانداردهای REST API اشاره دارد زیرا بیشتر در دنیای امروز استفاده میشود. شرکتهای بزرگی مانند گوگل، آمازون، eBay و … از REST API استفاده میکنند. REST به طور کلی در بین توسعهدهندگان نرمافزار انتخاب ارجح است.