API چیست و چه کاربردی دارد؟ آیا این نوعی پروتکل است یا نرم افزاری یا چیست؟
API مخفف Application Programming Interface است.
در واقع این حتی یک اصطلاح خاص برای نرم افزار نیست. در عوض ، مهندسان نرم افزار برای تشریح بهتر آنچه که از نرم افزار خود می خواهند قیاس کردند.
وقتی دو حباب صابون به هم برخورد می کنند ، یک سطح مستقیم بین آنها ایجاد می شود. این یک رابط است. هنگامی که یک شی گرم با دستکش های فر انتخاب می کنید ، دستکش ها رابطی بین شما و جسم داغ هستند.
و یک نرم افزار خوب به خودی خود وجود ندارد. با سایر نرم افزارها یا حتی سخت افزارها در تعامل است.
نرم افزارها اغلب بر اساس هدفشان دسته بندی می شوند. مجموعه نرم افزاری که به نرم افزارهای دیگر اجازه می دهد در رایانه کار کنند ، سیستم عامل است. هنگامی که یک برنامه خاص از یک سیستم هدف کلی باشد ، یک برنامه کاربردی است. کامپیوتر شما ، به عنوان یک سیستم ، تقریباً می تواند هر کاری را که کامپیوترها می توانند انجام دهند ، انجام دهد. وقتی یک نرم افزار از این ظرفیت برای مقاصد خاصی استفاده می کند ، یک برنامه کاربردی است.
برخی از نرم افزارها به عنوان قطعه یا جزء یک برنامه بزرگتر در نظر گرفته شده اند. اینها کتابخانه هستند (کد متن زیادی است و اینها دارای کد زیادی هستند). برخی دیگر قصد دارند ساختار برنامه ها را ایجاد کنند. اینها چارچوب هستند.
برنامه ها به ندرت همه کارها را به تنهایی انجام می دهند. گاهی اوقات کار در حال انجام دشوار است ، بنابراین آنها آن را به کتابخانه ها و چارچوب ها واگذار می کنند. گاهی اوقات کار توسط خود برنامه قابل انجام نیست و باید به سیستم عامل یا سرویس خارجی واگذار شود.
به عنوان مثال ، برنامه ها می توانند تاریخ را از نمای داخلی سیستم به چیزی که کاربر می تواند بخواند قالب بندی کنند. اما این یک کار شگفت آور پیچیده است ، بین برخورد با سیستم های تقویم مختلف و فرمت های بین المللی ، بنابراین برنامه ها معمولاً از کتابخانه ها می خواهند که این کار را برای آنها انجام دهند.
از سوی دیگر ، برنامه ها نمی توانند مستقیماً به سخت افزار دسترسی داشته باشند. آنها باید از سیستم عامل بخواهند که سخت افزارها را به دلایل امنیتی و عملکردی از طرف آنها اداره کند.
همه این نرم افزارها از طریق ابزارهای خاصی ارتباط برقرار می کنند ، همانطور که توسط نرم افزار ارائه شده است و این ویژگی را به برنامه ارائه می دهد. آنها سطحی را در معرض دید خود قرار می دهند که انتظار می رود با آن نرم افزارهای دیگر دست به کار شده یا آنها را لمس کنند. و چون این رابط ها برای برنامه نویسی برنامه ها در نظر گرفته شده اند ، رابط های برنامه نویسی برنامه نامیده می شوند.
API در واقع هم پروتکل و هم نرم افزار هستند.
آنها پروتکل هایی هستند به این معنا که ارائه دهنده ویژگی انتظار دارد مصرف کنندگان این ویژگی را فعال کنند. هرگونه نقض پروتکل مستند به ارائه دهنده این امکان را می دهد تا خطایی را ارائه دهد ، نتیجه ای نادرست داشته باشد یا به هیچ وجه چیزی را ارائه ندهد. “مجاز” در اینجا به این معنی است که نقص یا اشکال محسوب نمی شود. این نوعی “قرارداد” بین نرم افزار یا توسعه دهندگان آنها است.
اما آنها همچنین در نهایت نرم افزار هستند. نرم افزار در پاسخ به پروتکل های فعال سازی شرح داده شده در API اجرا می شود. و این فعال سازی در نظر گرفته شده است که توسط نرم افزار نیز انجام شود. حتی گاهی نرم افزارهای تخصصی برای رسیدگی به خود رابط در هر دو طرف تعامل وجود دارد. بیشتر اوقات ، بیشتر پروتکل فعال سازی در زبان برنامه نویسی یا پروتکل ارتباطی نشان داده شده است.
Java SE API
به عنوان مثال ، Java SE API ویژگی های استاندارد “کتابخانه استاندارد” جاوا را در معرض برنامه ها قرار می دهد. این بدان معناست که آنها از طریق فراخوانی های متد که توسط مشخصات زبان جاوا تعریف شده است ، فعال می شوند.
REST API
از سوی دیگر ، REST API سرویس های وب معمولاً از طریق HTTP اجرا می شود (تقریباً با تعریف). این بدان معناست که ویژگی ها از طریق چرخه های درخواست و پاسخ HTTP فعال می شوند ، همانطور که توسط مشخصات پروتکل HTTP تعریف شده است. در بسیاری از موارد ، JSON به دلیل محبوبیت و فراگیر بودن به عنوان یک قالب داده نیز دلالت دارد. هر چیزی فراتر از آن معمولاً در کتابچه های راهنمای آنها مشخص شده است.
API اغلب به عنوان “مخاطبین” نامیده می شود ، زیرا انتظارات بین ارائه دهندگان و مصرف کنندگان را هماهنگ می کند. ارائه دهندگان از مصرف کنندگان انتظار دارند که به مرزهای API احترام بگذارند و قول نمی دهند که خوب یا حتی خارج از این مرزها کار کنند. مصرف کنندگان از ارائه دهندگان انتظار دارند که طبق تبلیغات عمل کنند ، به ویژه اگر پروتکل رعایت شود.