API چیست؟

تا به حال دقت کردهاید که اپلیکیشنهای موبایل آب و هوایی اطلاعات خود را از کجا دریافت میکنند؟
مشخص است که اطلاعات خود را از سایت های معتبر هواشناسی میگیرند. این اطلاعات از طریق یک رابط برنامهنویسی به نام api منتقل شده و قابلیت خوانایی پیدا میکنند. در این مقاله در مورد api های مختلف و کاربردها و مفاهیم مختلف آن بحث شده است. APi مخفف رابط برنامهنویسی اپلیکیشن (Application Programming Interface)است.اکثر شرکتهای بزرگ APIها را برای مشتریان خود و یا برای استفاده داخلی ساختهاند. اما چگونه میتوان APIرا به سادگی توضیح داد؟ و آیا معنای چیزی بیشتر از آن چیزی است که در توسعه و تجارت استفاده میشود؟
دست نگه دارید!!!!!!!!!!!
اول نگاهی داشته باشیم. www و ریموت سرور هر صفحه ای در اینترنت در جایی بر روی یک ریموت سرور ذخیره شده است. ، فقط بخشی از یک کامپیوتر می باشد که به منظور پردازش دستورات از سمت سرور تعبیه شده و از راه دور قابل دسترس است. برای چیره بودن روی مطالب شما میتوانید یک سرور در لپتاپ خود راه بیندازید که توانایی ارائه سرویس برای کل یک وبسایت در وب را داشته باشد. (در حقیقت یک سرور محلی چیزیست که مهندسان برای توسعه وبسایتها قبل از ارائه آنها به عوام، از آن استفاده میکنند.) هنگامی که شما آدرس صفحه فیسبوک www.facebook.com را به مرورگر خود وارد میکنید، یک درخواست به ریموت سرور فیس بوک ارسال میشود. هنگامی که مرورگر پاسخ خود را دریافت میکند، کد را تفسیر میکند و صفحه را نمایش میدهد. برای مرورگر، که همچنین به عنوان کلاینت (client) نیز شناخته میشود، سرور فیسبوک یک API است. تا اینجا متوجه شدیم که هر بار که شما یک صفحه را در مرورگر مشاهده میکنید با برخی از APIهای ریموت سرور ارتباط برقرار میکنید. یک API دقیقا همان ریموت سرور نیست بلکه بخشی از سرور است که درخواستها را دریافت میکند و پاسخ ها را ارسال میکند. APIها به عنوان راهی برای خدمت به مشتریان شما احتمالا شنیدهاید که شرکتها APIهایشان را در قالب بستههایی به عنوان محصول ارائه میدهند. به عنوان مثال ودر آندرگراند Weather Undergrounدسترسی به API دادههای آب و هوایی خود را به فروش میرساند.
مثال: وبسایت کسب و کار کوچک شما دارای یک فرم است که مشتریان از آن برای ثبت قرار ملاقات استفاده میکنند. شما میخواهید برای مشتریان خود این امکان را فراهم کنید که به طور خودکار یک رویداد تقویم گوگل همراه با جزئیات مربوط به آن قرار ملاقات را ایجاد کنند.
استفاده از API: ایده این است که شما میخواهید سرور وبسایت شما با سرور گوگل، با درخواست ایجاد یک رویداد با جزئیات داده شده، به صورت مستقیم گفتگو داشته باشند. و بعد سرور شما پاسخ گوگل را دریافت کند، آن را پردازش کند و اطلاعات مربوطه را مانند پیام تأییدی به کاربر، به مرورگر ارسال کند. در حالت دیگر مرورگر شما اغلب میتواند درخواست API را با کنار زدن سرور شما مستقیما به سرور گوگل هدایت کند. API ها به آنها اجازه میدهند که بدون ترک وبسایت شما کارشان را کامل انجام دهند. بیشتر وبسایتهای مدرن حداقل برخی از API های واسطهای را استفاده میکنند. در حال حاضر بسیاری از مشکلات یک راه حل واسطهای دارند، حال میخواهد یک کتابخانه یا یک سرویس باشد و یا استفاده از یکی از راهحلهای موجود که معمولا سادهتر و مطمئنتر است. برای تیمهای توسعه غیرمعمول نیست که برنامه خود را بین چندین سرور که با یکدیگر از طریق API در حال گفتگو هستند، تقسیم کنند.
سرورهایی که عملکردهای کمکی را برای سرور اصلی نرمافزار اجرا میکنند معمولا به عنوان سرویسهای میکرو (Microservices) معرفی میشوند. به طور خلاصه، هنگامی که یک شرکت به مشتریان خود یک API ارائه میدهد، به این معنی است که آنها مجموعهای از آدرسهای اختصاص یافته ساختهاند که پاسخهای خالصداده را برمیگردانند. به این معنی که پاسخها حاوی نوعی سربار نمایشی نمیباشد که شما در یک رابط گرافیکی مانند یک وبسایت انتظار وجودش را دارید. آیا میتوانید این درخواستها را با مرورگر خود انجام دهید؟
معمولاً بله، از آنجا که انتقال واقعی اچتیتیپی (HTTP) به صورت متن انجام میشود، مرورگر شما همیشه بهترین روش را برای نمایش پاسخ پیاده میکند. استخراج دادهها از این متن ساده است. سپس شما میتوانید هر کاری که میخواهید با داده انجام دهید. A برای اپلیکیشن (Application) است. برای بستن موضوع،
بیایید چند مثال دیگر از APIها داشته باشیم. اپلیکیشن میتواند به بسیاری از موارد اشاره شده را به همراه داشته باشد . اینها چند نمونه در زمینه API هستند:
یک قطعه نرمافزاری با یک عملکرد مشخص. تمام سرور، کل برنامه، یا فقط یک قسمت کوچک از یک برنامه. اساسا هر قطعهای از نرمافزار که میتواند به طور جداگانه از محیطش جدا شود، میتواند یک (A) در API باشد، و احتمالا یک نوع API نیز دارد. فرض کنید شما در کد خود از یک کتابخانه واسطهای استفاده میکنید. پس از وارد شدن کتابخانه به کد شما، کتابخانه بخشی از برنامه کلی شما میشود. به عنوان یک قطعه مشخص از نرم افزار، کتابخانه به احتمال زیاد دارای یک API است که به آن اجازه میدهد تا با بقیه کد شما ارتباط برقرار کند.
مثال دیگر: در طراحی شیگرا (Object Oriented Design)، کد در قالب اشیا سازماندهی شده است. اپلیکیشن شما ممکن است دارای صدها شی تعریف شده باشد که میتوانند با یکدیگر در تعامل باشند.
هر شی یکAPI دارد – مجموعه ای از روشها و خصوصیتهای عمومی که از آنها برای ارتباط با سایر اشیاء در اپلیکیشن شما استفاده میکند. یک شی همچنین ممکن است دارای منطق درونی باشد که محرمانه است، به این معنی که از محدوده بیرونی قابل دسترسی نیست. (و نه یک API). از آن چه ما پوشش دادهایم،
امیدوارم معنای وسیعتری از API و همچنین استفادههای متداولتر امروزی از این اصطلاح را دریافته باشید