API(Application Programming Interface) یک ابزار هست که نرم افزار ها و سخت افزار ها میتوانند توسط آن باهم ارتباط برقرار کنند (ارتباطی که در آن نیاز به وجود نیروی انسانی نیست و همه کار ها توسط کامپیوتر ها یا سرور ها انجام میشود)
به طور خلاصه کاری هست که توسط یک کامپیوتر یا یک سرور اتفاق میوفته یا کاری که یک سرور بر روی یک URL مربوط به آن سرور انجام میدهد.
برای مثال : وقتی میخواهیم عکسی را که در برنامه ای قرار دادیم پاک کنیم،هروقت این عکس در برنامه پاک شد در سرور هم پاک شود
میانای برنامهسازی کاربردی[۱] یا واسط برنامهنویسی نرمافزار کاربردی یا ایپیآی (به انگلیسی: API، مخفف Application Programming Interface) که به صورت خلاصه به آن واسط برنامهنویسی هم گفته میشود،[نیازمند منبع] واسط بین یک کتابخانه یا سیستمعامل و برنامههایی است که از آن تقاضای سرویس میکنند.
واسط کارکردهایی را تعریف میکند که کتابخانه یا سیستمعامل میتواند ارائه دهد و مفهومی مجرد است. این کارکردها سپس در قالب یک نرمافزار یا کتابخانه پیادهسازی میشوند. به عبارت سادهتر، واسط برنامهنویسی مجموعه توابعی است که یک برنامه میتواند از یک برنامه دیگر فرا بخواند.. در واقع API واسط بین دو نرمافزار (اپلیکیشن) است که امکان ارتباط بین آنها را برقرار میکند.
برای مثال مایکروسافت برای APIهای ویندوز مرجعهایی استاندارد دارد که با استفاده از آنها برنامهنویسان میتوانند از قابلیتها و سرویسهای سیستمعامل در توسعه و نوشتن برنامههای کاربردی خود استفاده کنند.
بهطور کلی به مجموعهای از توابع و رویهها که به برنامههای کاربردی دیگر اجازه دسترسی و استفاده از ویژگیها یا دادههای یک نرمافزار را میدهد، ایپیآیهای آن نرمافزار گفته میشود. نرمافزار ارائه دهنده ایپیآی میتواند یک سایت اینترنتی، یک سیستمعامل یا هر سرویس دیگری باشد. در اینجا خدمات پایه نرمافزارهای تحت وب هستند که ایپیآیهای متنوعی ارائه میدهند و برنامه نویسان و تولیدکنندگان دیگری میتوانند از آنها استفاده نموده و بنابراین هزینههای زیرساختی و برنامهنویسی آنها کاهش پیدا کرده و سرعت برنامهنویسی آنها افزایش پیدا خواهد کرد زیرا دیگر لازم نیست که برای ایجاد یک ویژگی خاصی مجدداً برنامهنویسی کنند. همچنین امنیت برنامههای آنها نیز افزایش خواهد یافت، چرا که ارائه دهندگان خدمات پایه امنیت خود را در بالاترین سطح ممکن قرار خواهند داد.[۲]
منبع: ویکیپدیا
سلام دوست عزیز!
در بک اند ما برای ارتباط با دیتابیس از یک کنترلر و مدل استفاده میکنیم.
و این شکل کار میکنه که فرانت یک درخواستی مستقیم به کنترلر میفرسته و نتایج بر میگرده.
در api ما روت هایی مشخص میکنیم مثلا roocket.ir/api/user/id و از هر فرانتی ( هر وبسایت ، اپلیکیشن و ... ) میتونه یک id به این روت بفرسته بعد روت با استفاده از کنترلر و مدل، جوابش رو به صورت json برمیگردونه.
از فواید این کار :
1- امکان جدا کردن سرور بک اند از فرانت اند ( یعنی میشه دوتا هست جدا تهیه کرد )
2- امکان اتصال چندین وبسایت و اپ به یک api ( یعنی یک بار بک اند مینویسم و از اون برای اپلیکیشن اندروید ، ios و ویندوز و حتی سایت های دیگه ازش استفاده میکنیم ، حتی میشه یک سرویس api ایجاد کرد که به سایرین خدمات بده ، برای مثال سرویس api ارسال پیامک ، سرویس api آب و هوا ، سرویس api لاگین با گوگل و ... و میشه ازشون کسب درآمد کرد ، وبسایت apieco.ir محل فروش api های ایرانی هست )
امکانات api :
1- میشه به هر api داده های زیادی ارسال کرد از json تا عکس و ویدئو و ... ، و این داده ها بعد در کنترلر بررسی میشن.
2- میشه به همراه هر api توکن ارسال کرد و تو کنترلر چک بشه اگر توکن معتبره درخواست انجام بشه.
3- میشه مشخص کرد هر api فقط به چه ip ها و وبسایت هایی خدمات بده و ...
برای شروع پیشنهاد میکنم سیستم لاگین و ثبت نام که به صورت عادی با بک اند انجام میدادید را به صورت api تبدیل کنید.
با سلام و احترام
api یک پل برای ارتباط بین دو نرم افزاره (معمولا از JSON برای این ارتباط استفاده میشه چون در اکثر زبان های پشتیبانی میشه)
دو تا سیاره A و B رو در نظر بگیر فرض کن سیاره A میخواد با سیاره B ارتباط برقرار کنه ، خب یه چیزی باید این ارتباطه رو برقرار کنه درسته ؟ خب این همون api هستش که زبان مشترک بین دو تا سیاره هست
مثلا دیجی کالا یک وبسایت داره و یک اپ موبایل
دقیقا دیجی کالا از api که خودش ساخته در اپ موبایلش استفاده کرده
api ها آماده رو میبینم که توی راکت وجود داره مثه ثبت نام با حساب گوگل و ... که api های آماده هستن ، که بعضی از api ها پولی هستند
این یک توضیح ساده و کلیه برای درکش و اینکه بدونیم مشکل چیه دقیقا ! زمانی api ها به وجود اومدن که ما به تعامل بین نرم افزار ها نیاز داشتیم
@msdabbagh سلام
مواردی که فرمودین بیشتر برای restful api صادق هست،
انواع دیگری از api، مثل graphql یا gRCP هم وجود داره.
درود
خیلی از دوستان اومدن داخل زبان و تکنولوژی خودشون صحبت کردن که خب عملا بدرد نمیخورد
ولی یه سری از دوستان خیلی خوب توضیح دادن
ولی باز هم من به زبان یکم ساده تر میگم تا شما اگه متوجه نشدی متوجه بشی
ببین مثلا ما یه اپلیکیشن اندروید داریم
اون اپلیکیشن اندروید
به تنهایی نمیتونه با سرور ارتباط برقرار کنه(منظور دیتابیسی هست که روی سروره , ما یه نوع دیتابیس هم داریم که دیتابیس لوکاله ,مثلا گالری شما یه دیتابیس لوکال داره . یا حتی واتساپ.ولی اپلیکیشن هایی مثل تلگرام که اگه با حساب کاربریت داخلش لاگین کنی به همه چیزت اونجا دسترسی داری میشه دیتابیس روی سرور)
از این api به عنوان یه واسط برای ارتباط بین اپلیکیشن و سرور استفاده میشه
مثلا وقتی من داخل چت من و شما داخل تلگرام میشم
(اگه چت جدید باشه . چتای قدیمی توی دیتابیس لوکال هم سیو میشه تا اینترنت کمتری مصرف بشه و هر بار از اول لود نشه)
اپلیکیشن به api یه درخواست میزنه و میگه لیست چتای بین ابوالفضل و امیر علی رو بهم بده
بعد api ما به سرور وصله دیگه درسته؟
میره پیش سرور و این اطلاعات رو ازش میگیره
بعد میاد این اطلاعات رو به اپلیکیشن میده و بعد هم اپلیکیشن به ما نشون میده
این یه نوع از انواع api بود
انواع دیگه از api هم داریم
api هایی که مثلا ما هر چی توی دیتابیس ذخیره میکنیم
اون api توی یه دیتابیس دیگه هم اینا رو درجا ثبت میکنه تا به صورت بکاپ داشته باشیم
یا api هایی که توی میکروسرویس ها به کار میره و بین سرویس های مختلف ارتباط برقرار میکنه
و...
سلام روز بخیر
بزار ساده براتون توضیح بدم
فرض کنید شما یک برنامه میخواید بنویسید که وضعیت آب و هوا رو بهتون نشون بده ولی آیا شما خودتون میتونید این اطلاعات رو بدست بیارید؟
قطعا نه پس میریم سراغ یک api هواشناسی و اطلاعات رو از اون میگیریم و هرکاری خواستیم با اون اطلاعات میکنیم.
این یکی از کاربرد های کوچیک api بود که براتون گفتم.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟