احتمالاً اصطلاحات API ،Public API یا Web API قبلا به گوشتان خورده است. این اصطلاحات اغلب توسط شرکتهای نرمافزاری هنگام صحبت درباره یک برنامه، سیستمعامل یا وبسایت مورد استفاده قرار میگیرند. در دنیای امروز از آنها در همه جا استفاده میشود و سود فوقالعاده ای را به همراه دارند. اما آیا تا به حال فکر کردهاید که رابط برنامهنویسی برنامه کاربردی در واقع چیست یا چگونه از آن استفاده میشود؟ پس در ادامه با این مقاله از گروه تبلیغاتی فورسی همراه باشید تا به جواب این سوالات پاسخ دهیم.
Application Programming Interface چیست؟
API مخفف واژگان Application Programming Interface است که به صورت تحتالفظی میتوان آن را به «رابط برنامهنویسی نرمافزار» ترجمه کرد. به طور خلاصه، API همچون همان UI است با این تفاوت که به جای انسان، یک سیستم کامپیوتری قرار است با آن تعامل داشته باشد. در واقع، از آنجا که میتوان واژهٔ Interface را به «فصل مشترک» در فارسی ترجمه کرد، میتوان گفت که API فصل مشترکی مابین دو نرمافزار یا اپلیکیشن است (نیاز به توضیح است که در این بحث واژگانی همچون نرمافزار، اپلیکیشن، سیستم و … میتوانند به جای یکدیگر استفاده شوند و تفاوت معنایی خاصی ندارند.)
JSON چیست و چرا از آن استفاده میشود؟
JSON (JavaScript Object Notation) برای نمایش دادهها در یک سرور استفاده میشود. خواندن آن توسط انسان و درک آن برای ماشینآلات و برنامهها آسان است.
این زبان قابل درک است زیرا در جفت کلید یا مقدار، با کلید در سمت چپ و مقدار در سمت راست، تولید میشود. کلیدها یک شیء ثابت هستند که توسط برنامه تعریف شدهاند و همان “دسته” باقی خواهند ماند. در حالی که مقادیر منحصر به فرد مانند “پیراهن” خواهند بود.
آشنایی با انواع API
با در نظر گرفتن این نکته که API سازوکاری است که از آن طریق تعامل سیستم با سیستم به جای تعامل کاربر با سیستم صورت میگیرد، میتوان دستهبندیهای مختلفی برای ایپیآیها در نظر گرفت که عبارتند از:
– ایپیآی سختافزاری: زمانی که مثلاً با اجرای یک گیم حرفهای فشار زیادی روی سیستم خود میآوریم، میبینیم که فن سیستم شروع به تند چرخیدن میکند و این به دلیل آن است که سیپییو نسبت به حالت عادی در معرض فشار بیشتر است و بالتبع داغ شده است و باید خنک گردد که این سازوکار از طریق ارتباط مابین ایپیآیهای سختافزاری صورت میگیرد.
– ایپیآی سیستمعاملی: پیش از این در قالب مثال توسعهٔ یک نرمافزار دسکتاپ توضیح دادیم که ایپیآی مرتبط با یک سیستمعامل همچون ویندوز به چه شکل کار میکند.
– ایپیآی زبانهای برنامهنویسی: زبانی همچون جاوا یک هستهٔ اصلی دارد که شامل سینتکس این زبان، نحوهٔ ساخت متغیر، دیتا تایپها و … میشود اما در کنار آنها صدها کلاس مختلف توسط توسعهدهندگان این زبان عرضه شده که تحت عنوان Java API شناخته میشوند که فیچرهای تکمیلی این زبان را در دسترس دولوپرها قرار میدهند.
– کیتهای توسعهٔ نرمافزار: Software Development Kit یا به اختصار SDK نیز نوعی دیگی از ایپیآیها است که توسط شرکتهای مختلفی همچون گوگل، فیسبوک و … عرضه میشوند تا دولوپرها با استفاده از این کیتها بتوانند اقدام به توسعهٔ نرمافزار کنند که از آن جمله میتوان به Android SDK اشاره کرد.
– ایپیآی تحت وب (وب سرویس): این نوع ایپیآی یکی از متداولترین و کاربردیترین انواع ایپیآی است که ادامه تمرکز روی همین مقوله خواهیم کرد. ایپیآی تحت وب یا اصطلاحاً Web API به هر پروتکلی گفته میشود که از طریق شبکهٔ اینترنت و وب تعامل مابین اپلیکیشنهای مختلف را امکانپذیر سازد و از همین روی Web Service نیز نامیده میشود (وب اپلیکیشنی که محتوای خود را از طریق چندین و چند ایپیآی مختلف تأمین کند اصطلاحاً Mashup نامیده میشود.) زمانی که پای ایپیآیهای تحت وب به میان میآید، باید با سازوکار پروتکل HTTP و HTTPS آشنا باشیم.
درخواست API چیست؟
برای عملکرد API چندین مولفه وجود دارد. اجازه دهید به صورت جداگانه این موارد را مرور کنیم و نحوه استفاده از آنها برای ایجاد درخواست را بررسی کنیم.
- نقطه پایان: دو قسمت کلیدی برای یک نقطه پایانی وجود دارد که هنگام درخواست رابط برنامهنویسی برنامه کاربردی استفاده میشود. یکی از آنها URL و قسمت دوم مسیر است. مسیر بسته به آنچه که میخواهید به انجام برسانید متفاوت خواهد بود.
وقتی این دو قسمت را کنار هم قرار میدهیم، یک نقطه نهایی کامل بدست میآوریم. متغیرها نیز اجزای منحصر به فردی برای یک نقطه پایانی هستند و بسته به اطلاعات فروشگاه شما متفاوت خواهند بود. میتوانید یک متغیر را با براکتهای باز و بسته “{}” مشاهده کنید.
- سرتیتر یا هدر: هدرها اطلاعات را به مشتری و سرور ارائه میدهند. مثالهای متداول یک سرصفحه، احراز هویت معتبر مانند “Auth Token” یا “Client ID” است. این اعتبارنامهها هنگام ایجاد حساب API به طور خودکار در اختیار شما قرار میگیرند. هدر دیگری با نام “Content Type” شناخته میشود که به سرور در مورد نوع ارسال محتوا اطلاع میدهد. به عنوان مثال، یک نوع محتوای متداول “application / json” است که به سرور اطلاع میدهد که ما دادههای JSON را ارسال می کنیم.
- روش: روشها اقداماتی هستند که هنگام ارسال درخواست انجام میشوند. در مورد GET ، PUT ، POST و DELETE که در ابتدا به آنها اشاره کردیم، فکر کنید. اینها همه روشهای API هستند.
- دادهها: دادههای درخواست، که معمولاً “body” نیز نامیده میشوند، اطلاعاتی هستند که به سرور ارسال شده یا توسط آن برمیگردند. متن اصلی یک درخواست گاهی قبل از تحویل به اطلاعات خاصی نیاز دارد. مثالی از این موارد این است که اگر شما در حال ویرایش یک محصول هستید، قبل از ایجاد هرگونه تغییر، شناسه محصول مورد نیاز خواهد بود.
مزیت استفاده از API
رابط های برنامه نویسی، این مزیت را دارند که جلوی دسترسی مستقیم سیستم های دیگر به اطلاعات حساس یا خصوصی را سد می کنند. تنها دستورات و رابط های تعریف شده با قابلیت کنترل دسترسی، در اختیار دیگران قرار خواهند گرفت. بنابراین سیستم های دیگر نمی توانند هر تغییر و هر فعالیت مخرب یا غیرمجاز را در سیستم دیگر به انجام برسانند.
API را یک برنامه نویس کدنویسی می کند که بین سایت و اپلیکیشن چه ارتباطی وجود داشته باشد و اینکه شما بخواهید اعضای سایت شما یک جوری باشند و اعضای اپلیکیشن شما نفرات دیگری اینجا هست که برنامه نویس در کدی که برنامه نویسی می کند بین اعضای سایت با اپلیکیشن ارتباطی برقرار نمی کند API با توجه به درخواستی که مدیر سایت از برنامه نویس خود می خواهد طراحی و برنامه نویسی می شود.
کاربرد API
ایده کاربرد API این است که کاری کنید سرور وبسایت شما به طور مستقیم و از طریق یک درخواست برای ثبت رویداد با جزییات مفروض با سرور گوگل ارتباط برقرار کند. سرور شما سپس پاسخ گوگل را دریافت کرده و اطلاعات مرتبط مانند پیام تأیید به کاربر را به مرورگر وی بازمیگرداند.
به طور جایگزین مرورگر شما میتواند یک درخواست API را به صورت مستقیم به سرور گوگل ارسال کند و بدین ترتیب سرور شما را دور بزند.
طراحی API
این نکته را همواره باید مد نظر قرار داد که طراحی API از پایه کار نسبتاً دشواری است که مراحلی پیچیده و بسیار تخصصی دارا است. برای آنکه یک تصویر کلی از پروسهٔ طراحی ایپیآی داشته باشیم، باید گفت که عموماً ایپیآیها با توجه به برخی الگوها و استانداردها ساخته میشوند تا تمامی توسعهدهندگان از سراسر دنیا بتوانند بدون سردرگمی از آنها استفاده کنند که بررسی این موضوع خارج از این بحث است.
تفاوت وب سرویس و API
وب سرویس نامی دیگر برای APIهای تحت وب به شمار می رود. سایت های اینترنتی می توانند برای ارتباط با یکدیگر از وب سرویس یا API استفاده کنند. برای مثال ممکن است سایت «الف» سفارش های خرید کالا را از مشتریان دریافت کند و با استفاده از وب سرویس تعریف شده در سایت «ب»، درخواست تامین کالا را به صورت فوری ارسال نماید.
سایت های فروشگاه اینترنتی، برای دریافت وجه از مشتریان خود، لازم است تا با وب سرویس بانک ها ارتباط برقرار کنند و مبلغ لازم برای پرداخت و اطلاعات مشتری را اعلام کنند. در مرحله ی بعدی وب سرویس بانک، اطلاعات لازم برای شروع پرداخت را به فروشگاه اینترنتی ارسال می کند و مشتری با این اطلاعات به سایت بانک هدایت می شود.
جمع بندی
API ها قراردادهای استانداردی هستند که تعیین میکنند توسعهدهندگان چگونه با یک سرویس و انواع خروجیهای آن تعامل داشته باشند. اگر این مطلب را دریافتید، حالا میدانید که API چیست. اگر مشاهده کردید که یک پلتفرم نرمافزاری یا سرویس، API های جدیدی برای سختافزارها یا سرویسهای مختلف اضافه کرده است، بدانید که بدین ترتیب توسعهدهندگان میتوانند راحتتر از مزایای چنین خصوصیاتی بهره ببرند.