API چیست

اگر تخصص و کار شما در حوزه IT باشد قطعا مجبور خواهید API بسازید و از API های دیگران استفاده کنید.APIها یک جز کلیدی از دنیای دیجیتال ما هستند و میلیاردها تجربه دیجیتال را در هر دقیقه امکان پذیر می کنند.API چیست؟کلمه API مخفف Application Programming Interface میباشد.APIs are mechanisms that enable two or more software components to communicate with each other using a set of definitions and protocols.API ها مکانیسم هایی هستند که دو یا چند بخش یک یا دو نرم افزار را قادر می سازند تا با استفاده از مجموعه ای از تعاریف و پروتکل ها با یکدیگر ارتباط برقرار کنند.Application: Software (or a component of software) that does a taskبرای مثال : موتور جست و جو گوگل، اسکایپ که تماس صوتی را فراهم می‌کند و ....Programing(P): Program that does the task in the applicationبرنامه ای که توسط اون کاری انجام می‌شه. برای مثال الگوریتم ترجمه گوگل وظیفه انجام دادن ترجمه رو به عهده داره. ( در واقع source code )Interface: Place to tell the program to runهر کدام از اپ های موبایل یک interface هستند. صفحه گوگل ترنسلیت یک interface است.این خیلی مهمه که درک کنید وقتی از API صحبت می‌کنیم معمولا در مورد APIهای بر بستر وب صحبت می‌کنیم اما APIها فقط محدود به وب نیستند.چرا API مهم است؟Just use the program, don't write itبرای استفاده از داده های آب و هوا نیازی نیست برنامه ای بسازید که داده های آب و هوا رو بدست بیاره، فقط کافیه از داده‌های شرکت‌های دیگر استفاده کنید.Platform independentالگوریتم سرچ گوگل وابسته به سیستم عامل است؟ اپلیکشن اندروید و ios رو می‌تونید دانلود کنید و همینطور از نسخه وب استفاده کنید. فقط کافیه به اپلیکشن بگید که درخواست تون رو انجام بده.API چگونه کار می‌کند:معماری API معمولاً بر حسب کلاینت - سرور توضیح داده می شود.تصور کنید مشتری (Client) یک رستوران هستید. گارسون (API) به عنوان یک واسطه بین مشتریانی مانند شما و آشپزخانه (Web Server) عمل می کند. شما سفارش خود را به گارسون می‌گویید (Request)، گارسون آن را از آشپزخانه درخواست می‌کند. در نهایت گارسون آنچه را که سفارش داده اید (Response) در اختیار شما قرار می‌دهد.در این مثال، گارسون عملاً انتزاعی از API است. در مهندسی نرم افزار، abstraction یک مفهوم اساسی است که هدف آن ساده کردن یک مکانیسم پیچیده تنها با تمرکز بر جزئیات با اهمیت بالاتر است. در این مثال، به عنوان یک مشتری، نیازی نیست بدانید که آشپزخانه یا رستوران چگونه کار می کند تا به آنچه می خواهید برسید. فقط باید بدانید که چگونه آن را سفارش دهید.دسته بندی APIها بر اساس نوع استفاده:سیستم عاملدیتابیسریموت:API های راه دور برای تعامل از طریق یک شبکه ارتباطی طراحی شده اند. منظور ما از راه دور این است که منابعی که توسط API دستکاری می‌شوند، جایی خارج از کامپیوتری هستند که درخواست را انجام می‌دهند. از آنجایی که پرکاربردترین شبکه ارتباطی اینترنت است، بیشتر APIها بر اساس استانداردهای وب طراحی می شوند. همه API های راه دور وب API نیستند، اما منصفانه است که فرض کنیم که API های وب از راه دور هستند.وب:API های وب معمولاً از HTTP برای پیام های درخواستی استفاده می کنند و تعریفی از ساختار پیام های Response ارائه می دهند. این پیام های Response معمولاً به شکل یک فایل XML یا JSON هستند. هر دو فرمت XML و JSON ترجیح داده می شوند زیرا داده ها را به گونه ای ارائه می کنند که برای سایر برنامه ها به راحتی قابل دستکاری است.دسته بندی APIها بر اساس پروتوکل‌:SOAP APIs:APIهای طراحی شده با SOAP از XML برای قالب پیام خود استفاده می کنند و درخواست ها را از طریق HTTP یا SMTP دریافت می کنند. SOAP اشتراک‌گذاری اطلاعات را برای برنامه‌هایی که در محیط‌های مختلف اجرا می‌شوند یا به زبان‌های مختلف نوشته شده‌اند، آسان‌تر می‌کندREST APIs:REST مجموعه ای از محدودیت های معماری است، نه یک پروتکل یا یک استاندارد. توسعه دهندگان API می توانند REST را به روش های مختلفی پیاده سازی کنند.REST مخفف Representational State Transfer است.REST مجموعه‌ای از توابع مانند GET، PUT، DELETE و غیره را تعریف می‌کند که کلاینت‌ها می‌توانند از آنها برای دسترسی به داده‌های سرور استفاده کنند. کلاینت و سرور با استفاده از HTTP داده‌ها را منتقل می‌کنند.در دنیای امروز وقتی صحبت از API می‌شود عموما منظور یک Web API هستش که با استفاده از REST پیاده سازی شده است. در ادامه بیشتر با REST APIs آشنا خواهیم شد.