اگر تخصص و کار شما در حوزه IT باشد قطعا مجبور خواهید 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 ها مکانیسم هایی هستند که دو یا چند بخش یک یا دو نرم افزار را قادر می سازند تا با استفاده از مجموعه ای از تعاریف و پروتکل ها با یکدیگر ارتباط برقرار کنند.
برای مثال : موتور جست و جو گوگل، اسکایپ که تماس صوتی را فراهم میکند و ....
برنامه ای که توسط اون کاری انجام میشه. برای مثال الگوریتم ترجمه گوگل وظیفه انجام دادن ترجمه رو به عهده داره. ( در واقع source code )
هر کدام از اپ های موبایل یک interface هستند. صفحه گوگل ترنسلیت یک interface است.
این خیلی مهمه که درک کنید وقتی از API صحبت میکنیم معمولا در مورد APIهای بر بستر وب صحبت میکنیم اما APIها فقط محدود به وب نیستند.
برای استفاده از داده های آب و هوا نیازی نیست برنامه ای بسازید که داده های آب و هوا رو بدست بیاره، فقط کافیه از دادههای شرکتهای دیگر استفاده کنید.
الگوریتم سرچ گوگل وابسته به سیستم عامل است؟ اپلیکشن اندروید و ios رو میتونید دانلود کنید و همینطور از نسخه وب استفاده کنید. فقط کافیه به اپلیکشن بگید که درخواست تون رو انجام بده.
معماری API معمولاً بر حسب کلاینت - سرور توضیح داده می شود.
تصور کنید مشتری (Client) یک رستوران هستید. گارسون (API) به عنوان یک واسطه بین مشتریانی مانند شما و آشپزخانه (Web Server) عمل می کند. شما سفارش خود را به گارسون میگویید (Request)، گارسون آن را از آشپزخانه درخواست میکند. در نهایت گارسون آنچه را که سفارش داده اید (Response) در اختیار شما قرار میدهد.
در این مثال، گارسون عملاً انتزاعی از API است. در مهندسی نرم افزار، abstraction یک مفهوم اساسی است که هدف آن ساده کردن یک مکانیسم پیچیده تنها با تمرکز بر جزئیات با اهمیت بالاتر است. در این مثال، به عنوان یک مشتری، نیازی نیست بدانید که آشپزخانه یا رستوران چگونه کار می کند تا به آنچه می خواهید برسید. فقط باید بدانید که چگونه آن را سفارش دهید.
API های راه دور برای تعامل از طریق یک شبکه ارتباطی طراحی شده اند. منظور ما از راه دور این است که منابعی که توسط API دستکاری میشوند، جایی خارج از کامپیوتری هستند که درخواست را انجام میدهند. از آنجایی که پرکاربردترین شبکه ارتباطی اینترنت است، بیشتر APIها بر اساس استانداردهای وب طراحی می شوند. همه API های راه دور وب API نیستند، اما منصفانه است که فرض کنیم که API های وب از راه دور هستند.
API های وب معمولاً از HTTP برای پیام های درخواستی استفاده می کنند و تعریفی از ساختار پیام های Response ارائه می دهند. این پیام های Response معمولاً به شکل یک فایل XML یا JSON هستند. هر دو فرمت XML و JSON ترجیح داده می شوند زیرا داده ها را به گونه ای ارائه می کنند که برای سایر برنامه ها به راحتی قابل دستکاری است.
APIهای طراحی شده با SOAP از XML برای قالب پیام خود استفاده می کنند و درخواست ها را از طریق HTTP یا SMTP دریافت می کنند. SOAP اشتراکگذاری اطلاعات را برای برنامههایی که در محیطهای مختلف اجرا میشوند یا به زبانهای مختلف نوشته شدهاند، آسانتر میکند
REST مجموعه ای از محدودیت های معماری است، نه یک پروتکل یا یک استاندارد. توسعه دهندگان API می توانند REST را به روش های مختلفی پیاده سازی کنند.
REST مخفف Representational State Transfer است.REST مجموعهای از توابع مانند GET، PUT، DELETE و غیره را تعریف میکند که کلاینتها میتوانند از آنها برای دسترسی به دادههای سرور استفاده کنند. کلاینت و سرور با استفاده از HTTP دادهها را منتقل میکنند.
در دنیای امروز وقتی صحبت از API میشود عموما منظور یک Web API هستش که با استفاده از REST پیاده سازی شده است. در ادامه بیشتر با REST APIs آشنا خواهیم شد.