API چیست؟ معرفی انواع آن به زبان ساده

API چیست؟ معرفی انواع آن به زبان ساده

آموزشی
22 آذر 1403

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

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

 

دید کلی از دلیل استفاده از API

فک کنید یک برنامه موبایل دارید میسازید و سمت سرور برنامه (که مسئولیت ساخت و مدیریت API رو داره) با زبان برنامه نویسی پایتون (اگر با python آشنایی ندارید میتونید دوره رایگان آموزش پایتون رو شرکت کنید) و سمت Client اون با زبان های برنامه نویسی ای مثل Swift یا Kotlin یا هر زبان دیگه ای، بسته به نیاز برنامه توسعه داده شده. حالا اگر ما بخوایم اطلاعاتی که در دیتابیس ذخیره داریم رو به کاربر نمایش بدیم چطور باید این کار رو انجام بدیم؟ چون زبان سمت سرور ما که با دیتابیس ارتباط داره با زبان سمت Client کاملا فرق داره (حتی میتونه توسط توسعه دهنده های مختلف توسعه داده شده باشه).

حالا چطوری صرف نظر از زبان برنامه نویسی های به کار رفته در برنامه ها، بین اون ها ارتباط برقرار کنیم؟

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

 

API چیست؟

API که مخفف Application Programming Interface یا همون (واسط برنامه‌نویسی کاربردی) است. API یک پل و رابط بین برنامه یا نرم افزار های مختلف است. ای پی آی این امکان رو فراهم میکنه که برنامه ها و نرم افزارها، صرف نظر از زبان برنامه نویسی بکار رفته در اون ها، با هم دیگه ارتباط برقرار کنن و تعامل داشته باشن.

توسعه دهنده ها با استفاده از API داخل برنامه ها میتونن برنامه خودشون رو ساده تر کنند به عنوان مثال فک کنید می خواید یک برنامه هواشناسی بسازید و به جای اینکه خودتون برنامه ای در خصوص ثبت و ارسال اطلاعت هواشناسی بسازید (که کار منطقی هم نیست) می تونید با استفاده از API های مربوط به هواشناسی اطلاعات مدنظرتون درباره ی هواشناسی رو دریافت کنید و توی برنامه تون استفاده کنید این طوریه که با استفاده از API میتونین از خدمات برنامه های دیگه استفاده کنید.

 

API چگونه کار میکند؟

فرض کنید برنامه ای داریم که معماری کلی اون به شکل سرویس دهنده (Server) و سرویس گیرنده (Client) است. حالا اون واسطی که بین این دوتا قرار میگیره API میگن که اجازه میده که برنامه ها کنار هم کار بکنن.

  • -سرویس دهنده (Server): این بخش وظیفه دریافت درخواست داره و بعد از پردازش، پاسخ لازم رو برمیگردونه.
  • -API: واسط ارتباطی است که مثل یک پل درخواست رو منتقل میکنه.
  • -سرویس گیرنده (Client): برنامه ای است که درخواست رو ارسال میکنه.

 

نحوه ی عملکرد API:

  1. 1. ارسال درخواست: سرویس گیرنده (Client) از طریق آدرسی منحصر به فرد که میتواند یک URL یا URI (مخفف Uniform Resource Indentifier به معنی شناسه اختصاصی منبع) به کمک API درخواست خودش رو ارسال میکنه.
  2. 2. تماس با سرور: حالا API درخواستی رو که دریافت کرده رو به سرویس دهنده (Server) منتقل میکنه. 
  3. 3. دریافت و پردازش درخواست: سرور بعد از اینکه درخواستی که از API دریافت کرده رو تحلیل میکنه و پاسخ لازم رو آماده میکنه.
  4. 4. انتقال پاسخ: API پاسخ سرور رو دریافت و برای سرویس گیرنده ارسال میکنه.
  5. 5. دریافت پاسخ: سرویس گیرنده پاسخ سرور رو از طریق API دریافت میکنه. 

 

چرا به API نیاز داریم؟

چند نمونه از دلایل مهم نیاز بهAPI:

 

سرعت توسعه

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

 

افزایش قابلیت ها

 API دست توسعه دهنده رو توی اضافه کردن قابلیت جدید باز میزاره به عنوان مثال با استفاده از API میتونید یک سرویس نقشه و قابلیت مسیریابی رو به برنامه اضافه کنید.

 

توسعه چند پلتفرمی

API رو میشه توی پلتفرم های مختلف استفاده کرد به عنوان مثال یک وب سرویس میتونه هم برای اپلیکیشن های موبایل و دستکتاپ و همچنین وب API ارائه بده.

 

امنیت

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

 

مثال های کاربرد API 

چند نمونه از کاربردهای ای پی آی:

 

اپلیکیشن های موبایل

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

 

وبسایت ها

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

 

اینترنت اشیا (IOT) 

یک مثال قابل لمس از نقش API توی اینترنت اشیا (IOT)، سیستم های تهویه هوای هوشمند توی خونه ها است که با استفاده از تلفن همراه میشه دمای خونه رو تغییر داد، حتی میتونه با سرویس های هواشناسی هم در ارتباط باشه تا بصورت اتوماتیک دمای هوا رو با هوای بیرون تنظیم کنه، همه این کارها با API ممکن شده.

 

انواع API

API رو بر اساس عوامل مختلفی میشه دسته بندی کرد. در ادامه انواع API رو براساس سطح دسترسی و نوع استفاده معرفی می کنیم:

 

1-انواع API بر اساس سطح دسترسی

منظور از سطح دسترسی (Permission) API اینه که API ساخته شده برای چه افرادی در دسترس باشه مثلا برای عموم در دسترس باشه یا برای افراد خاص، بر اساس همین میتونیم اون رو به انواع زیر دسته بندی کنیم:

 

1. API عمومی (Open APIs)

این مدل ای پی آی که به اسم Public APIs هم شناخته میشه در دسترس همه قرار داره و بدون محدودیت قابل استفاده است (هر چند گاهی اوقات ممکنه نیاز به پرداخت هزینه یا دریافت مجوز داشته باشه) می تونید لیستی از این Public APIs رو در گیت هاب مشاهده کنید.

 

2. API خصوصی (Internal APIs)

این مدل ای پی آی که به اسم Private APIs هم شناخته میشه که فقط برای استفاده از داخل یک سیستم طراحی شدن و برای توسعه دهنده های اون سازمان در دسترس هستن به طور خلاصه برای عموم در دسترس نیست و برای هدفی بخصوص برای استفاده داخل یک سیستم توسعه داده شده.

 

3. API مشارکتی (Partner APIs)

API مشارکتی که با توافق بین شرکت ارائه دهنده و ارائه گیرنده استفاده میشه، این API که بیشتر در امور تجاری کاربرد داره و با توافق شرکت ها، API اشتراکی برای برقراری ارتباط بین نرم افزار ها ارائه میشه. در واقع شرکت ارائه دهنده به شریک هاش اجازه برقراری ارتباط از طریق Partner API رو میده.

 

4. API ترکیبی (Composite APIs)

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

 

2-انواع API بر اساس نوع استفاده

در ادامه رایج ترین انواع API بر اساس نوع استفاده رو معرفی می کنیم:

 

1. API پایگاه داده (Database API)

این نوع API امکان اتصال برنامه ها رو به دیتابیس میده. این نوع API با برای انواع دیتابیس از جمله دیتابیس های SQL مثل MYSQL، PostgreSQL، Oracle و همچنین دیتابیس های NoSQL مثل MongoDB، CouchDB قابل استفاده است.

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

 

2. API سیستم عامل (OS API)

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

 

3. API وب (Web API) 

اگر API در بستر یک سرویس تحت وب ارائه بشه و ارتباط برقرار کردن بین سرویس های مختلف رو از طریق شبکه اینترنت ممکن کنه بهش Web API یا Web Service (وب سرویس) میگن.

رویکرد های مختلفی برای توسعه API ها در وب سرویس ها بکار میره مثل SOAP ، gRPCT، GraphQL ، PRC که یکی از شناخته شده ترین اون ها REST است برای اطلاعات بیشتر میتونید مقاله RESTful API چیست رو مطالعه کنید.

 

4. API از راه دور (Remote API)

API از راه دور یا Remote API در واقع API ای است که از طریق یک شبکه (مثل اینترنت) قابل دسترس است و کاربرد های خیلی مختلفی دارد. به کمک Remote API میتونیم به منابعی که خارج از سیستم هستن دسترسی پیدا کنیم و از قابلیت ها و امکانات اون ها بهره ببریم.

 

نتیجه گیری

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

برای ساختن API های استاندارد و سریع در پایتون میتونید از Django Rest Framework (DRF) استفاده کنید و اگر با اون آشنایی ندارد میتونید مقاله DRF چیست رو مطالعه کنید ولی به طور کلی یک ابزار قدرتمند برای ساخت API در فریم ورک جنگو (Django) است که میتونید برای آشنایی با این فریم ورک از مقاله جنگو چیست شروع کنید.

author-avatar
سعید امینی
نویسنده مقاله

الان بیشتر از پنج ساله که مشغول برنامه نویسی وب هستم و در طول این مدت کلی چالش رو پشت سر گذاشتم و عاشق اینم که هر چیزی رو که در این مدت یاد گرفتم رو به بقیه هم یاد بدم، الانم در بستر سایت گیک باز دارم دانشم رو با بقیه تقسیم میکنم :)

نظرات

هنوز نظری وجود ندارد! شما اولین نفر باشید...