<div align="right" dir="rtl">

<p align="center" dir="rtl">بسم الله الرحمن الرحیم</p>

# معرفی API
<p align="center">
  <img src="img/0.jpg" />
</p>

# API چیست و چه کاربردهایی دارد؟


احتمالاً اصطلاح “API” را شنیده اید، اما اگر می خواهید درباره این عبارت بیشتر بدانید و دانش خود را بالاتر ببرید، در ادامه با ما همراه باشید تا به زبانی ساده و همراه با مثال، این عبارت را برای شما تعریف کنیم.
Application Programming Interface چیست؟

اصطلاح API مخفف عبارت Application Programming Interface به معنی “رابط برنامه نویسی نرم افزار کاربردی” است.

به یک ای پی آی مانند منو در رستوران فکر کنید. در این فهرست لیستی از انواع غذا های قابل سفارش را می توانید همراه با توضیحات مربوط به هر غذا مشاهده کنید.

وقتی مشخص می کنید کدام یک از آیتم های منو را می خواهید، کادر آشپزخانه رستوران کار را انجام می دهد و برخی از غذا های آماده را برای شما فراهم می کند. در واقع شما دقیقا نمی دانید که رستوران چگونه آن غذا را تهیه می کند و نیازی هم به آن ندارید.

به طور مشابه API مجموعه ای از عملیاتی را که توسعه دهندگان می توانند از آن ها استفاده کنند به همراه توضیحی از کارهایی که انجام می دهند، ذکر کرده است.

توسعه دهنده لزوماً نیازی به دانستن این موضوع ندارد که برای مثال یک سیستم عامل چگونه کادر گفتگوی “Save As” را ایجاد و ارائه می دهد. آن ها فقط باید بدانند که برای استفاده در برنامه آن ها چنین چیزی موجود است.



این یک استعاره کامل نیست، زیرا ممکن است توسعه دهندگان برای به دست آوردن نتایج مجبور شوند داده های خود را به API ارائه دهند. بنابراین شاید این بیشتر شبیه یک رستوران فانتزی باشد که بتوانید بعضی از مواد تشکیل دهنده خود را تهیه کنید که آشپزخانه با آن ها کار خواهد کرد.

API ها به توسعه دهندگان این امکان را می دهند تا با استفاده از اجرای یک پلتفرم، کار خود را با استفاده از اجرای نرم افزار سرعت بخشند. این امر کمک می کند تا میزان ایجاد کد برای توسعه دهندگان کد کم شود و همچنین به ایجاد سازگاری بیشتر در بین برنامه ها برای همان پلتفرم کمک می کند.

API ها می توانند دسترسی به منابع سخت افزاری و نرم افزاری را کنترل کنند.

## انواع API:

* ای پی آی خصوصی
* ای پی آی عمومی (باز)
* ای پی آی مشارکتی

# API ها زندگی را برای توسعه دهندگان آسان تر می کنند!
<p align="center">
  <img src="img/1.jpg" />
</p>
Application Programming Interface API مخفف عبارت Application Programming Interface به معنی “رابط برنامه نویسی نرم افزار کاربردی” است.

بیایید بگوییم که شما می خواهید یک برنامه برای آیفون تهیه کنید. سیستم عامل iOS اپل تعداد زیادی API را مانند هر سیستم عامل دیگر ارائه می دهد تا این کار را برای شما آسان تر کند.

اگر می خواهید یک مرورگر وب را برای نشان دادن یک یا چند صفحه وب ایجاد کنید، برای برنامه خود نیازی نیست مرورگر وب خود را از ابتدا برنامه نویسی کنید. شما از API WKWebView برای جاسازی یک شیء مرورگر (WebKit (Safari در برنامه خود استفاده می کنید.

اگر می خواهید از دوربین آیفون عکس یا فیلم بگیرید، لازم نیست که رابط دوربین خود را بنویسید. شما از API دوربین برای تعبیه دوربین داخلی iPhone در برنامه خود استفاده می کنید.

اگر API ها برای آسان کردن این برنامه وجود نداشتند، توسعه دهندگان برنامه باید نرم افزار دوربین خود را می ساختند و ورودی های سخت افزار دوربین را تفسیر می کردند.

اما توسعه دهندگان سیستم عامل اپل این همه کار سخت را انجام داده اند تا توسعه دهندگان فقط بتوانند از API دوربین برای جاسازی دوربین استفاده کنند و سپس با ساختن برنامه خود کار خود را ادامه دهند.

هنگامی که اپل API دوربین را بهبود می بخشد، تمام برنامه هایی که به آن متکی هستند از این پیشرفت به طور خودکار بهره خواهند برد. این امر برای هر سیستم عاملی صدق می کند.
# API دسترسی به منابع را کنترل می کند!
<p align="center">
  <img src="img/2.jpg" />
</p>

از API ها نیز برای کنترل دسترسی به دستگاه های سخت افزاری و عملکرد های نرم افزاری استفاده می شود که یک برنامه ممکن است لزوماً مجوز استفاده از آن ها را نداشته باشد.

به همین دلیل API ها اغلب نقش بزرگی در امنیت دارند.

به عنوان مثال اگر تاکنون از یک وب سایت بازدید کرده اید و پیامی را در مرورگر خود مشاهده کرده اید که وب سایت می خواهد مکان دقیق شما را ببیند، آن وب سایت در تلاش است تا از API جغرافیایی در مرورگر وب شما استفاده کند.

مرورگر های وب، API هایی مانند این را در اختیار خود قرار می دهند تا دسترسی توسعه دهندگان وب به موقعیت مکانی شما را آسان کنند.

آن ها فقط می توانند از شما بپرسند “کجا هستید؟” و این مرورگر است که کار سختی را برای دسترسی به GPS یا شبکه های Wi-Fi در این نزدیکی انجام می دهد تا موقعیت فیزیکی شما را پیدا کند.

این اصل مشابه در سیستم عامل های مدرن موبایل مانند iOS و Android نیز مورد استفاده قرار می گیرد، جایی که برنامه های تلفن همراه دارای مجوز هایی هستند که با کنترل دسترسی به API ها قابل اجرا هستند.

به عنوان مثال اگر یک توسعه دهنده سعی دارد از طریق API دوربین به دوربین شما دسترسی پیدا کند، می توانید درخواست اجازه برنامه را رد کنید و برنامه هیچ راهی برای دسترسی به دوربین دستگاه شما ندارد.

سیستم های پرونده ای که از مجوزها استفاده می کنند همانند Windows ،Mac و Linux این مجوزها را توسط API سیستم فایل اجرا می کنند.

یک برنامه معمولی دسترسی مستقیم به هارد دیسک فیزیکی خام ندارد. در عوض برنامه باید از طریق API به فایل ها دسترسی پیدا کند.
# API ها برای ارتباط بین خدمات استفاده می شوند.
<p align="center">
  <img src="img/3.jpg" />
</p>
رابط برنامه نویسی کاربردی

ای پی آی ها به دلایل دیگر نیز مورد استفاده قرار می گیرند.

به عنوان مثال اگر تاکنون یک شیء Google Maps را در یک وب سایت جاسازی کرده اید، مشاهده کرده اید که آن وب سایت از API Google Maps برای جاسازی آن نقشه استفاده می کند.

گوگل API هایی مانند این را در اختیار برنامه نویسان وب قرار می دهد، آن ها می توانند از API ها برای جاسازی اشیاء پیچیده در وب سایت خود استفاده کنند.

اگر API هایی مانند این وجود نداشت، ممکن بود توسعه دهندگان نقشه های خود را ایجاد کرده و داده های مورد نظر خود را در آن وارد کنند و یا با دیگر منابع هیچ تعاملی برقرار نکنند.

با وجود API گوگل می توان دسترسی به Google Maps را در وب سایت های شخص ثالث کنترل کرد و اطمینان حاصل کرد که توسعه دهندگان به جای تلاش برای جاسوسی مخفیانه، از روشی ثابت استفاده می کنند.

این امر در مورد بسیاری از خدمات آنلاین مختلف صدق می کند.

API هایی برای درخواست ترجمه متن از Google Translate یا جاسازی نظرات یا توییت های فیس بوک از توییتر در وب سایت وجود دارد.

همچنین استاندارد OAuth تعدادی ای پی آی را تعریف می کند که به شما امکان می دهد با یک سرویس دیگر وارد وب سایت شوید.

به عنوان مثال از حساب های Facebook ،Google یا Twitter استفاده کنید تا وارد یک وب سایت جدید شوید (بدون ایجاد یک حساب کاربری جدید فقط برای آن سایت).

API ها قرارداد های استانداردی هستند که چگونگی برقراری ارتباط توسعه دهندگان با یک سرویس را مشخص می کنند.

اگر تا کنون با آن ها کار کرده اید خود بهتر می دانید که API چیست. در نهایت شما واقعاً نیازی به دانستن API ندارید، مگر اینکه شما یک برنامه نویس باشید.

اما اگر می بینید که یک پلتفرم نرم افزاری یا خدمات، API های جدیدی را برای سخت افزار یا خدمات مختلف اضافه کرده است، بدانید که استفاده از چنین ویژگی هایی برای توسعه دهندگان راحت تر است.

<p align="center" dir="rtl">صلوات</p>
</div>