HDG توضیح می دهد: API چیست؟

در اینترنت پر از کلمات اختصاری گیج کننده و ناآشنا(confusing and unfamiliar acronyms) ، می توان به راحتی گیج شد. یکی از مخفف های وب که ممکن است شنیده باشید، اما هرگز الهام گرفته اید که به آن نگاه کنید، "API" است.

API چیست ؟ API مخفف رابط برنامه نویسی کاربردی است( application programming interface) و نامی است برای مجموعه ای از روتین ها و پروتکل ها که روند ساخت برنامه های نرم افزاری را بسیار آسان می کند.

یک راه ساده برای نگاه کردن به یک API به عنوان یک نقشه راه است که به اجزای یک نرم افزار نحوه تعامل را می گوید. بدون استفاده از API ، کد منبع می تواند مانند یک آشفتگی درهم ریخته و گیج کننده به نظر برسد.

با این حال، API(APIs) ها پیچیده هستند و به چیزی بیش از یک خلاصه کوتاه نیاز دارند. در این مقاله، بیایید به نحوه عملکرد APIها(APIs) و چه سایت‌ها و سرویس‌هایی از آن‌ها استفاده می‌کنند، بپردازیم.

API چیست و چگونه کار می کند؟(What Is An API and How Does It Work?)

اکنون که ما ثابت کرده‌ایم که یک API مجموعه‌ای از روتین‌ها است که نرم‌افزار را در جهت درست هدایت می‌کند، این همه دقیقاً چگونه کار می‌کند؟

بهترین راه برای توضیح عملکرد اصلی یک API ارائه یک مثال در دنیای واقعی است. خدمات تحویل غذا(Food) ، مانند GrubHub ، در حال حاضر بسیار محبوب هستند، بنابراین بیایید در مورد نحوه عملکرد کد پشت برنامه های تلفن همراه مانند این بحث کنیم.

هنگامی که در یکی از این برنامه ها رستوران یا غذای مورد نظر خود را جستجو می کنید، نتایج مرتبط را بر اساس کلمات کلیدی و مکان خود دریافت می کنید. پس از انتخاب یک نتیجه، گزینه‌های اقلام غذایی، زمان‌های تحویل و گزینه‌های بیشتر رستوران به شما ارائه می‌شود.

برای برنامه‌ریزی تحویل شما، باید بین وب‌سایت تحویل و پایگاه داده ارتباط برقرار شود - وب‌سایت ظاهری و پایگاه داده پشتیبان است. پایگاه داده چیزی است که داده های همه این رستوران ها، در دسترس بودن آنها در هر مکان، برنامه عملیاتی، منوها و موارد دیگر را ذخیره می کند.

API ارتباط بین این پایگاه داده و وب سایت یا برنامه ای است که داده های آن را ارائه می دهد . مهم است که یک API برای ایجاد این اتصال وجود داشته باشد، به جای استفاده از داده های کدگذاری سخت، در درجه اول به دلیل محبوبیت ادغام های شخص ثالث. 

به عنوان مثال، اگر گردآورنده های شخص ثالث بتوانند همه رستوران ها و اقلام موجود را فهرست و سازماندهی کنند، برای یک وب سایت مفید خواهد بود، درست است؟ بدون API ، این کار بدون استفاده از تکنیک‌های ناکارآمد خراش وب امکان‌پذیر نخواهد بود.

API رابطی است که مسئول تحویل داده ها از پایگاه داده به برنامه است، خواه یک وب سایت، برنامه تلفن همراه یا هر چیز دیگری باشد. API(APIs) ها به روش استاندارد دسترسی و برقراری ارتباط با داده های برنامه در سراسر وب تبدیل شده اند، و هر وب سایت یا سرویس اصلی که به اتصال شخص ثالث وابسته است، با ارائه یکی از آنها به شدت سود می برد.

چه نوع API وجود دارد؟(What Types Of APIs Are There?)

انواع مختلفی از پروتکل های API وجود دارد، اما سه نوع از محبوب ترین آنها عبارتند از (API)SOAP ( پروتکل دسترسی ساده(Simple Object Access Protocol) به اشیا )، REST ( انتقال وضعیت نمایندگی(Representational State Transfer) )، و RPC ( تماس رویه از راه دور(Remote Procedure Call) ).

API های SOAP(SOAP APIs)

SOAP اولین بار در اواخر دهه 1990 معرفی شد و برنامه ها را قادر ساخت تا منابع را به روشی ساده از طریق استفاده از اتصالات شبکه به اشتراک بگذارند. SOAP متکی بر پروتکل های استاندارد مانند HTTP و SMTP است که به دلیل محبوبیت چنین پروتکل هایی، امکان استفاده از آن را در عمل در هر محیطی فراهم می کند.

نقطه قوت اصلی آن این است که به طور گسترده مورد استفاده و تثبیت است. اگر خراب نیست، آن را تعمیر نکنید.

REST APIها(REST APIs)

REST در سال 2000 توسط روی فیلدینگ(Roy Fielding) معرفی شد . هدف فوری آن این بود که به عنوان پاسخی به بسیاری از مسائلی که با پذیرش گسترده SOAP ایجاد شده بود عمل کند.

مشابه SOAP ، REST برای انتقال اطلاعات بین برنامه‌ها به HTTP متکی است. با این حال، یک تفاوت عمده که آن را از SOAP متمایز می کند ، که نیاز به انتقال داده از طریق فرمت داده XML دارد، این است که (XML)JSON را پشتیبانی می کند . JSON فرمت داده ای است که بسیاری موافقند خواندن و نوشتن آن آسان تر است. علاوه بر این، API های REST(REST APIs) می توانند داده ها را در حافظه پنهان ذخیره کنند، که امکان عملکرد بسیار بهتر را فراهم می کند.

بر اساس گزارش سال 2017 توسط Cloud Elements ، REST اکنون بیش از 80٪ از همه APIها(APIs) را تشکیل می دهد .

API های RPC(RPC APIs)

APIهای RPC در طعم‌های مختلفی وجود دارند، اما همانطور که از (RPC APIs)REST API(REST APIs) آموختیم ، JSON یک فرمت داده بسیار محبوب است، بنابراین JSON-RPC محبوب‌ترین فرمت آن است.

JSON-RPC پروتکلی است که به بهترین وجه برای مینیمالیست ها و کاربرانی که به صریح بودن (JSON-RPC)API خود متکی هستند مناسب است . دامنه آن در مقایسه با SOAP و REST بسیار محدودتر است، و در انعطاف پذیری و مجموعه دستورات آن بسیار محدود است - اما برای برخی از توسعه دهندگان، کمتر است.

انواع دیگری از API(API) مبتنی بر RPC مانند gRPC وجود دارد، اما اگر اولویت شما سادگی پیاده‌سازی باشد ، JSON-RPC بهترین گزینه است.(JSON-RPC)

چه کسی از API ها استفاده می کند؟(Who Uses APIs?)

توسعه دهندگان از هر نوعی، چه فرانت اند و چه باطن، باید تجربه کار با API ها(APIs) را داشته باشند. از نظر وب‌سایت‌ها یا وب‌سرویس‌ها، عملاً همه بازیگران اصلی نوعی API در دسترس دارند که واضح‌ترین آنها ویندوز(Windows) است.

با توجه به اینکه مایکروسافت ویندوز(Microsoft Windows) محبوب ترین سیستم عامل روی کره زمین است، طبیعی است که توسعه دهندگان برنامه به مجموعه ای از دستورالعمل ها برای نحوه تعامل با رابط کاربری آن نیاز داشته باشند. بدون دسترسی به Windows API ، برنامه‌نویسی برنامه‌ای که به شدت به تعامل با سیستم عامل متکی است، دردسر بزرگی خواهد بود.

هزاران API(APIs) وجود دارد، برخی رایگان و برخی پولی. در اینجا فقط چند نمونه وجود دارد که ارزش بررسی دارد:

  • Google Play Developer API : کارهای انتشار و مدیریت برنامه مربوط به Google Play
  • API های Skyscanner(Skyscanner APIs)(Skyscanner APIs) : API های(APIs) مبتنی بر سفرمربوط به پروازها، کرایه اتومبیل و موارد دیگر
  • Twilio API : امکان(Allows) ارسال و دریافت برنامه‌ای تماس‌های تلفنی را فراهم می‌کند
  • Discord API : به کاربران اجازه می دهد ربات هایی را ایجاد کنند که Discord را به سرویس پیام رسانی امروزی
  • IPinfo API : آدرس (: )IP(On-the-fly IP) و داده های موقعیت جغرافیایی برای وب سایت یا برنامه شما

API(APIs) ها یکی از اتصال دهنده های کلیدی در پشت برخی از بزرگترین و مهم ترین وب سایت ها و برنامه های وب هستند. در حالی که کاربر معمولی ممکن است نتواند مزایای API ها(APIs) را ببیند ، اما آنها موهبتی برای توسعه دهندگان و خدمات وب هستند.



About the author

من یک کارشناس باتجربه ویندوز 10 و 11/10 هستم که هم در مرورگرها و هم در برنامه های گوشی های هوشمند تجربه دارم. من بیش از 15 سال مهندس نرم افزار هستم و با تعدادی از شرکت های بزرگ از جمله مایکروسافت، گوگل، اپل، یوبی سافت و غیره کار کرده ام. من همچنین توسعه ویندوز 10/11 را در سطح کالج تدریس کرده ام.



Related posts