آشنایی با api ها
فهرست مطالب
آخرین به روزرسانی در 29/07/2022
در این مقاله قصد آشنایی شما کاربران گرامی با API ها را داریم که یکی از مهم ترین مباحث در طراحی سایت – اپلیکیشن و بازی سازی می باشد و کاربردهای بسیار زیادی را داراست ، پس تا پایان این مقاله همراه ما باشید تا شما را با مزایا و کاربرد API ها تا انواع آن آشنا کنیم .
تعریف API
API مخفف واژه Application Programming Interface و به معنی رابط برنامه نویسی کاربردی است. یک API ، رابط میان یک منبع یا سیستمعامل و برنامههایی است که از آن تقاضای سرویس میکنند.
اگر بخواهیم به زبان ساده تر بگوییم رابط برنامه به اینصورت کار می کند که اطلاعاتی را از برنامه های دیگر فراخوانی می کند و رابط یا زبان مشترک میان دو نرم افزار یا اپلیکیشن است که امکان ارتباط بین آنها را برقرار میکند که اصطلاحا به این ارتباط گفت و گوی میان نرم افزارها و سرویس های مختلف می گویند .
لازم به ذکر است که اکثریت وبسایت ها ، اپلیکیشن ها و نرم افزارهای بزرگ دنیا دارای API اختصاصی می باشند تا سایر کاربران دنیای آنلاین بتوانند از ویژگی های آن پلتفرم با استفاده از دسترسی های تعریف شده استفاده های لازم را ببرند ؛ به عنوان مثال شما سایت Airbnb را در نظر بگیرید که یکی از بزرگ ترین وبسایت های رزرو و اجاره ی هتل در دنیا می باشد ، این سایت با استفاده از api های اختصاصی خود به شما اجازه می دهد که در وبسایت اختصاصی خود ، از موارد جدیدی از هتل ها و در کل مراکز مسکونی که به وبسایت Airbnb اضافه می شود نیز استفاده کنید و به نمایش کاربران وبسایت خود بگذارید .
کاربرد API ها
همانطور که گفته شد بزرگ ترین و اصلی ترین کاربرد API ها در برقراری ارتباط میان اپلیکیشن ها – وبسایت ها و نرم افزارها می باشد ، به اینصورت که شما با استفاده از API ها میتوانید از امکانات ابزاری سایر پلتفرم های در پلتفرم اختصاصی خود با استفاده از دسترسی های تعریف شده استفاده کنید و مثال دقیق آن در بالا زده شد که به شکل های مختلفی API ها میتوانند متناسب با نوع کاربری هر پلتفرمی به ما کمک رسان باشند .
همچنین به طور خلاصه و موردی از سایر کاربرد ها و مزایای API ها می توان به موارد زیر اشاره کرد :
- کاهش هزینههای مالی و زمانی
- افزایش سطح کیفی و بالا بردن سرعت ارائه خدمات
- امکان ایجاد ارتباط میان برنامهها و سیستم عاملهای مختلف
- امکان ایجاد هماهنگی بین بخش های سازنده ی یک پلتفرم یا یک مجموعه
انواع API ها
(به طور کلی انواع API ها را می توان در دو دسته بندی ، دسترسی و کاربردی مورد بررسی قرار داد که ما به معرفی هر دو دسته بندی در این مقاله خواهیم پرداخت)
انواع API از لحاظ سطح دسترسی
- Open APIs
این دسته از API ها اکثرا در زیر مجموعه ی همان API های تحت وب قرار گرفته و در دنیای آنلاین به صورت رایگان توسط وبسایت های بزرگ ارائه شده و قابل استفاده می باشد .
- Internal APIs
این نوع API ها معمولا در سازمان ها و شرکت های بزرگ مورد استفاده قرار می گیرید که برای برقراری ارتباط بین اجزا و اعضای مختلف آن مجموعه مورد استفاده قرار می گیرد .
انواع API از لحاظ کاربرد
- سیستم عاملی
این نوع API برای ارتباط میان نرم افزار و سیستم عامل مورد استفاده قرار می گیرد .
- زبان های برنامه نویسی
در واقع این نوع API ها را میتوان کتابخانه ها یا فریمورک های زبان های برنامه نوسی بزرگ دانست ، به عنوان مثال شما زبان برنامه نویسی Java Script را در نظر بگیرید که فریمورک های Angular و React کامل کننده های زبان جاوا اسکریپت می باشند که با استفاده از API ها اطلاعاتی را در اختیار برنامه نویسان قرار می دهند .
- نرم افزاری
این نوع API برای توسعه ی نرم افزار استفاده می شود که معمولا شرکت های گوگل و فیسبوک ارائه دهنده ی آن می باشند و کاربران با استفاده از این نوع API می توانند به توسعه ی نرم افزارهای خود بپردازند .
- سخت افزاری
این نوع API ها برای ایجاد ارتباط بین سخت افزارهای یک سیستم کاربرد دارند به اینصورت که شما تصور کنید دوربین عکاسی یک تلفن همراه چه نوع ارتباطاتی را با سایر بخش های سخت افزاری مانند حافظه داشته باشد و شکلگیری این ارتباط با استفاده از API های سخت افزاری امکان پذیر می باشد .
- تحت وب
یکی دیگر از انواع API ها را میتوان API ها تحت وب دانست که در واقع اصلی ترین و پر کاربردترین نوع API ها هستند که همانطور که نام آن ها پیداست در بستر وب و با نام وب سرویس مورد استفاده قرار می گیرند که امکان برقراری ارتباط بین وبسایت ها را فراهم می سازند.
حال که به معرفی وب سرویس پرداختیم در ادامه به معرفی انواع آن از لحاظ دریافت و ارسال داده ها نیز خواهیم پرداخت که عبارتند از :
XML – Extensible Markup Language
در این استاندارد از وب سرویس ها انتقال دیتا تنها در قالب متن صورت میپذیرد و صرفا برای انتقال دادهها میان وب سرویس ها به کار میرود.
SOAP – Simple Object Access Protocol
در این نوع از وب سروی ها تبادل پیغامهای XML در بین شبکههای کامپیوتری اتفاق می افتد که ارتباطات در این روش از طریق پروتکل امن Http انجام می شوند و به همین دلیل نیز قالب SOAP برای انتقال داده های با سطح امنیتی بالا مناسب است.
UDDI – Universal Description, Discovery and Integration
UDDI به ذخیره ی اطلاعات اصلی وب سرویس ها می پردازد . این استاندارد امکان معرفی و ثبت وب سرویس ها را برای برنامه نویسان و شرکتها فراهم میکند.
WSDL – Web Service Description Language
به طور کلی در همه وب سرویس ها یک فایل WSDL وجود دارد که مشخصات، مکان و نحوه استفاده از وب سرویس را توضیح میدهد و در واقع این استاندارد یک دفترچه راهنمای وب سرویس ها می باشد که تنها برای نرم افزارها نیز قابل درک و فهم می باشد .
معماری API و وب سرویس
یک API از سه قسمت زیر تشکیل شده است:
- User : کاربری که درخواستی برای استفاده از API ارسال می کند .
- Client : سیستمی که درخواست کاربر را به سمت سرور ارسال میکند.
- Server : سروری که به تمامی درخواست ها پاسخ می دهد .
چهار عمل اصلی که با یک API قابل انجام می باشد :
- GET : درخواست داده ها از سرور
- POST : اضافه کردن و یا به اصطلاح پست کردن داده ها به سرور
- PUT : اضافه کردن یا جایگزین کردن داده های قبلی
- DELETE : حذف داده های موجود در سرور
معماری وب سرویس ها
(منظور از معماری API پروتکلهایی است که بوسیله آنها بدون توجه به زبان برنامه نویسی نرم افزارها و سیستمهای عامل مورد استفاده ، نرم افزارها بتوانند به سادگی با هم در ارتباط باشند.)
RPC – (Remote Procedure Call )
این پروتکل ارتباط میان نرم افزارهای مختلف در شبکه را در دو نوع XML و JSON بدون نیاز به درک جزئیات آن شبکه امکان پذیر میکند.
SOA – (Service Oriented Architecture)
این معماری بیشتر برای سازمان ها و مجموعه های بزرگ به منظور ایجاد ارتباط و یکپارچه سازی نرم افزارهای داخلی و خارجی ، توسعه ی آن ها و کنترل بر مباحث امنیتی و اطلاعاتی سازمان استفاده می شود .
REST – (Representational State Transfer)
و اما می رسییم به معروف ترین و محبوب ترین معماری لایه ای که بسیار پر کاربرد و حائز اهمیت می باش در بین معماری ها . و می توان به عنوان تعریف اینگونه گفت که راهی ساده به منظور سازماندهی تعاملات مابین سیستمهای مجزا از یکدیگر میباشد .