من میدانم که هیچ نمیدانم.
تعریف API (Application Programming Interface) به زبان ساده!
احتمالاً اصطلاح “API” را شنیده اید، اما اگر میخواهید درباره این عبارت بیشتر بدانید و دانش خود را بالاتر ببرید، در ادامه با ما همراه باشید تا به زبانی ساده و همراه با مثال، این عبارت را برای شما تعریف کنیم.
Application Programming Interface چیست؟
اصطلاح API مخفف عبارت Application Programming Interface به معنی “رابط برنامه نویسی نرم افزار کاربردی” است.
همین ابتدا بیایید تا با یک مثال ساده API و نحوه کار آن را برای شما تعریف کنیم:
به یک ای پی آی مانند منو در رستوران فکر کنید. در این فهرست لیستی از انواع غذا های قابل سفارش را میتوانید همراه با توضیحات مربوط به هر غذا مشاهده کنید.
وقتی مشخص میکنید کدام یک از آیتمهای منو را میخواهید، کادر آشپزخانه رستوران کار را انجام میدهد و برخی از غذاهای آماده را برای شما فراهم میکند. در واقع شما دقیقا نمیدانید که رستوران چگونه آن غذا را تهیه میکند و نیازی هم به آن ندارید.
به طور مشابه API مجموعه ای از عملیاتی را که توسعه دهندگان میتوانند از آنها استفاده کنند به همراه توضیحی از کارهایی که انجام میدهند، ذکر کرده است.
توسعه دهنده لزوماً نیازی به دانستن این موضوع ندارد که برای مثال یک سیستم عامل چگونه کادر گفتگوی “Save As” را ایجاد و ارائه میدهد. آنها فقط باید بدانند که برای استفاده در برنامه آنها چنین چیزی موجود است.
این یک استعاره کامل نیست، زیرا ممکن است توسعه دهندگان برای به دست آوردن نتایج مجبور شوند دادههای خود را به API ارائه دهند. بنابراین شاید این بیشتر شبیه یک رستوران فانتزی باشد که بتوانید بعضی از مواد تشکیل دهنده خود را تهیه کنید که آشپزخانه با آنها کار خواهد کرد.
API ها به توسعه دهندگان این امکان را می هند تا با استفاده از اجرای یک پلتفرم، کار خود را با استفاده از اجرای نرم افزار سرعت بخشند. این امر کمک میکند تا میزان ایجاد کد برای توسعه دهندگان کد کم شود و همچنین به ایجاد سازگاری بیشتر در بین برنامهها برای همان پلتفرم کمک میکند.
API ها میتوانند دسترسی به منابع سخت افزاری و نرم افزاری را کنترل کنند.
انواع API:
- ایپیآی خصوصی
- ایپیآی عمومی (باز)
- ایپیآی مشارکتی
API ها زندگی را برای توسعه دهندگان آسان تر میکنند!
بیایید بگوییم که شما می خواهید یک برنامه برای آیفون تهیه کنید. سیستم عامل iOS اپل تعداد زیادی API را مانند هر سیستم عامل دیگر ارائه می دهد تا این کار را برای شما آسان تر کند.
اگر می خواهید یک مرورگر وب را برای نشان دادن یک یا چند صفحه وب ایجاد کنید، برای برنامه خود نیازی نیست مرورگر وب خود را از ابتدا برنامه نویسی کنید. شما از API WKWebView برای جاسازی یک شیء مرورگر (WebKit (Safari در برنامه خود استفاده می کنید.
اگر می خواهید از دوربین آیفون عکس یا فیلم بگیرید، لازم نیست که رابط دوربین خود را بنویسید. شما از API دوربین برای تعبیه دوربین داخلی iPhone در برنامه خود استفاده می کنید.
اگر API ها برای آسان کردن این برنامه وجود نداشتند، توسعه دهندگان برنامه باید نرم افزار دوربین خود را می ساختند و ورودی های سخت افزار دوربین را تفسیر می کردند.
اما توسعه دهندگان سیستم عامل اپل این همه کار سخت را انجام داده اند تا توسعه دهندگان فقط بتوانند از API دوربین برای جاسازی دوربین استفاده کنند و سپس با ساختن برنامه خود کار خود را ادامه دهند.
هنگامی که اپل API دوربین را بهبود می بخشد، تمام برنامه هایی که به آن متکی هستند از این پیشرفت به طور خودکار بهره خواهند برد. این امر برای هر سیستم عاملی صدق می کند.
API دسترسی به منابع را کنترل می کند!
از API ها نیز برای کنترل دسترسی به دستگاه های سخت افزاری و عملکرد های نرم افزاری استفاده می شود که یک برنامه ممکن است لزوماً مجوز استفاده از آن ها را نداشته باشد.
به همین دلیل API ها اغلب نقش بزرگی در امنیت دارند.
به عنوان مثال اگر تاکنون از یک وب سایت بازدید کرده اید و پیامی را در مرورگر خود مشاهده کرده اید که وب سایت می خواهد مکان دقیق شما را ببیند، آن وب سایت در تلاش است تا از API جغرافیایی در مرورگر وب شما استفاده کند.
مرورگر های وب، API هایی مانند این را در اختیار خود قرار می دهند تا دسترسی توسعه دهندگان وب به موقعیت مکانی شما را آسان کنند.
آن ها فقط می توانند از شما بپرسند “کجا هستید؟” و این مرورگر است که کار سختی را برای دسترسی به GPS یا شبکه های Wi-Fi در این نزدیکی انجام میدهد تا موقعیت فیزیکی شما را پیدا کند.
این اصل مشابه در سیستم عاملهای مدرن موبایل مانند iOS و Android نیز مورد استفاده قرار میگیرد، جایی که برنامه های تلفن همراه دارای مجوزهایی هستند که با کنترل دسترسی به API ها قابل اجرا هستند.
به عنوان مثال اگر یک توسعه دهنده سعی دارد از طریق API دوربین به دوربین شما دسترسی پیدا کند، میتوانید درخواست اجازه برنامه را رد کنید و برنامه هیچ راهی برای دسترسی به دوربین دستگاه شما ندارد.
سیستمهای پروندهای که از مجوزها استفاده میکنند همانند Windows ،Mac و Linux این مجوزها را توسط API سیستم فایل اجرا میکنند.
یک برنامه معمولی دسترسی مستقیم به هارد دیسک فیزیکی خام ندارد. در عوض برنامه باید از طریق API به فایلها
API ها برای ارتباط بین خدمات استفاده میشوند
ایپیآیها به دلایل دیگر نیز مورد استفاده قرار میگیرند.
به عنوان مثال اگر تاکنون یک شیء Google Maps را در یک وب سایت جاسازی کردهاید، مشاهده کردهاید که آن وب سایت از API Google Maps برای جاسازی آن نقشه استفاده میکند.
گوگل APIهایی مانند این را در اختیار برنامه نویسان وب قرار میدهد، آن ها میتوانند از APIها برای جاسازی اشیاء پیچیده در وب سایت خود استفاده کنند.
اگر APIهایی مانند این وجود نداشت، ممکن بود توسعه دهندگان نقشههای خود را ایجاد کرده و دادههای مورد نظر خود را در آن وارد کنند و یا با دیگر منابع هیچ تعاملی برقرار نکنند.
با وجود API گوگل میتوان دسترسی به Google Maps را در وب سایتهای شخص ثالث کنترل کرد و اطمینان حاصل کرد که توسعه دهندگان به جای تلاش برای جاسوسی مخفیانه، از روشی ثابت استفاده میکنند.
این امر در مورد بسیاری از خدمات آنلاین مختلف صدق میکند.
همچنین API هایی برای درخواست ترجمه متن از Google Translate یا جاسازی نظرات یا توییتهای فیس بوک از توییتر در وب سایت وجود دارد.
همچنین استاندارد OAuth تعدادی ایپیآی را تعریف میکند که به شما امکان میدهد با یک سرویس دیگر وارد وب سایت شوید.
به عنوان مثال از حسابهای Facebook ،Google یا Twitter استفاده کنید تا وارد یک وب سایت جدید شوید (بدون ایجاد یک حساب کاربری جدید فقط برای آن سایت).
API ها قراردادهای استانداردی هستند که چگونگی برقراری ارتباط توسعه دهندگان با یک سرویس را مشخص میکنند.
اگر تا کنون با آنها کار کردهاید خود بهتر میدانید که API چیست. در نهایت شما واقعاً نیازی به دانستن API ندارید، مگر اینکه شما یک برنامهنویس باشید.
اما اگر میبینید که یک پلتفرم نرم افزاری یا خدمات، APIهای جدیدی را برای سخت افزار یا خدمات مختلف اضافه کرده است، بدانید که استفاده از چنین ویژگیهایی برای توسعه دهندگان راحتتر است.
منابع:
مطلبی دیگر از این انتشارات
آپدیت قیمت بیت کوین/ بیت کوین 8 هزارتایی
مطلبی دیگر از این انتشارات
صرافی غیرمتمرکز تورچین (ThorChain) و توکن Rune
مطلبی دیگر از این انتشارات
معرفی ارز دیجیتال تزوس XTZ – ارز بلاکچین Tezos