سلام خدمت تمامی عزیزان کدایت ، من قصد داریم امروز مبحث خیلی مهم و شیرین api را برای شما عزیزان آموزش دهم. ما در سری قبلی از مقالات در مورد برنامه نویسی خودمون به شما یاد دادیم که sdk چیست ؟ و چجوری آن را به دو روش آنلاین و آفلاین نصب کنیم . امروز قصد دارم برای شما مبحث api یا به عبارت دیگر رابط برنامه نویسی کاربردی رو یاد بدهیم تا شما در پایان این آموزش بفهمید که Api چیست؟ در برنامه نویسی چه کاری را انجام میدهد و به صورت کلی هدف از api چیه ؟ Json چیست ؟ و مباحث دیگر که در ادامه در باره آن ها حرف میزنیم.
API (رابط برنامه نویسی کاربردی)چیست؟
ما برای اینکه به داده ها و همچنین یکسری سیستم خارجی ، OS (سیستم عامل) ویا سرویس های کوچک دسترسی داسته باشیم . باید از یک مجموعه توابع استفاده کنیم. که در دنیای بزرگ تکنولوژی به آن API که مخفف شده ی کلمه های رابط برنامه نویسی برنامه کربردی است نیاز داریم .تا این قسمت تقریبا فهمیدید که Api چیست ؟ حالا در ادامه من با یک مثال کار را برای شما آسان تر میکنم .
فرض کنید ما در یک سایت فروشگاهی هستیم مثلا فروشگاه کفش ، و یدونه از اون کفش ها رو میپسندیم و قصد دارم که اون کفش رو به سبد خرید خودم اضافه کنم. اینجا API یا همون رابط برنامه نویسی کاربردی پاسخ ما را دریافت میکند .وبه اون سایت یا به اصطلاح سیستم میدهد. یعنی به سیستم میگوید که این محصول را به سبدخرید کاربر اضافه کن . ما به کمک API میتوانیم اطلاعات موردنظرمون را بگیریم و یا به جای که مدنظرمون هست ارسال کنیم .
اگر به صورت ساده و خلاصه بگم فرض کنید ما یک اپلیکیشن داریم که اطلاعات خودش رو از هاست یا همون دیتابیس میگیرد .ما به کمک API داده هامون رو به دیتابیس میفرستیمو همچنین برعکس دریافت میکنیم. ما در این میان از یک زبان برنامه نویسی به اسم Json استفاده میکنیم.
با ای پی آی چه درخواست هایی میتوان داد.
ما در قسمت بالا فهمیدیم که API چیست ؟ حالا بریم سراغ اینکه یاد بگیریم که API جه در خواست هایی را انجام میدهد. در خواست های PUT ، POST ، GETو DELETE را میتوان با ای پی ای ها انجام داد . برای اینکه بفهمید این درخواست ها برای چه زمانی میباشد به ادامه مبحث دقت کنید . فرض کنید مانند مثال های قبلی ما یک سایت فروشگاه داریم و این سایت تمامی محصولات خودش رو و همچنین اطلاعات خود را از DATABASE دریافت میکند . به این گرفتن اطلاعات از دیتابیس رو درخواست GET میگویند .
بعد از آن شما ممکن است قیمت برخی از محصولات یا یک ویژگی آن را تغیر دهید. یعنی به اصطلاح میخواهید داده های خودتون رو آپیت کنید . که در اینصورت دستور PUT رو انجام میدهیم. در این بین شاید شما بخواهید یک سری محصولات رو به سایت خودتون اضافه کنید در این حالت شما دستور POST رو اجرا میکنید . و دستور آخر که دستور DELETE میباشد و شما با استفاده از آن اطلاعات خود را حذف میکنید.
JSON (جیسون) چیست ؟
JSON یا Javascript Object Natation زمانی که میخواهیم دادهیمان را نمایش دهیم استفاده میشود . تعاریفی که از JSON(جیسون) در بستر اینترنت میباشد . خیلی پیچیده است و بیشتر مواقع برنامه نویسان اصلا متوجه نمیشوند. که دقیق منظور از این تعریف چیه ؟ من سعی میکنم تعریف ساده ای برای شما بیاورم تا بفهمید که json چیست ؟ از مثال های بالا که برای شما زدیم تا بفهمید Api چیست ؟ استفاده میکنم فرض کنید شما یک APP فروشگاهی دارید . که اطلاعات و داده های خودش رو از سرور میگیره . یعنی ما در صفحات phpبا کمک زبان php و یا غیره کویری یا جستوجو های مینویسم که این اطلاعات را از دیتابیس دریافت کند و به سمت برنامه اندرویدی ما بفرستد .
حالا سوال من اینجاست که ما در یک طرف کد های php داریم که داده ها رو از دیتابیس گرفته و برای اندروید فرستاده و اون طرفم برنامه اندرویدی و یا هر سیستم عامل دیگر ، خب این دو برای همدیگر خوانا نیستند یعنی php نمیدونه جاوا چی میگه و برعکس . ما در این حالت میایم از یک زبان مسترک به اسم json استفاده میکنیم که هر دو میتوانند اون اطلاعاتی که به صورت json ارسال میشود رو به کمک یک کلید (Key) مشترک که در هر دو طرف یکسان هست را دریافت کنند و بعد از دریافت اطلاعات را تجزیه و استفاده کنند. فکر کنم الان فهمیده باشید که Json چیست ؟ حالا بریم سراغ مباحث دیگر .
چه کسانی از API ها استفاده میکنند ؟
در این قسمت بعد اینکه فهمیدیم API چیست ؟ و به چه معنایی هست دوست دارم بدونیم که چه دسته از افراد از API ها استفاده میکنند .
- دسته اول توسعه دهندگان داخلی یا همون (Internal developers) هستند . این دسته از افرادی که برای شما میگوییم از API های داخلی اون سازمانی که در داخل آن مشغول به کار هستند ، استفاده میکنند. واما من در این قسمت یکسری از برنامه هایی که با ای پی آی های داخلی کار میکنند را آوردیم که عبارتند از Instagram و Gmail همچنین Google Cloud VM .
- دسته دوم توسعه دهنگان شراکتی یا همون شریکی (Partner Developers ) اون دسته از سازمان های که در حوزه ی ارتباطات هستند . این API ها رو مورد استفاده قرار میدهند. و اینکه این ای پی آی ها به وسیله ی کلمه کلیدی که در اختیار کاربران قرار میگیرد مورد استفاده قرار میگیرد . و از جمله برنامه های که از این نوع ای پی آی ها استفاده میکنند. میتوان Microsoft (MC , Finextra )اشاره کرد .
- و اما دسته سوم آخر از کسانی که از ای پی آی ها استفاده میکنند . توسعه دهندگان باز یا همون (Open Developers )نیز گفته میشود . بعضی از سازمان ها یا شرکت ها دسترسی به API های خودشون رو در اختیار عموم به صورت متن باز قرار میدهند . و همچنین از برنامه هایی که از این نوع API ها استفاده میکنند میتوان به Twitter و Telnyx اشاره کرد .
level در API ها
level یا همون در جه در Api ها به این معنا هست که هرچه درجه بیشتر باشه و بالا تر بره مجوز دسترسی ما به امکانات بیشتر و متفاوت تر بیشتر میشه . مثلا از API 25 به بالا میتونن از یک سینسور یا برای مثال از قابلیت بلوتوث استفاده کنندو API های پایین مجوز این کار ها را ندارند .
نکته بسیار مهم دیگر برای برنامه نویسان این هست که شما عزیزان باید قبل از برنامه نویسی API خودتون رو مشخص کنید . این یعنی چه ؟ یعنی من برنامه نویس باید مشخص کنم برای API های بالا ی 15 برنامه مینویسم و یا غیره این API فلان مثلا همان Android 3.1 یا غیره میباشد که به صورت عامیانه و توسط افراد غیره مسط به این زبان مورد استفاده قرار میگیرند .
حالا منظور از اینکه گفتیم قبلا از برنامه نویسی برای خودتون API مشخص کنید یعنی چی ؟ ببینید اگر شما برای مثال برای API های بالا 18 برنامه نویسی کنید و یک برنامه بسازید گوشی های که API پایین تر دارند نمیتونن این برنامه را نصب کنند.و همچنین معیار شما برای انتخاب API باید این باشد . که ببینید بیشتر گوشی های که در بیرون توسط مردم مورد استفاده قرار میگیرند در چه رنج API هستند .
چگونه API ها باعث ساده شدن کار توسعه دهندگان میشود ؟
سیستم عامل اندروید که سهم بزرگی از بازار را در اختیار دارد مانند سایر سیستم عامل ها برای اسنکه کار توسعه دهندگان خودش رو راحتر کند تعدادی از API های مورد نیاز آن ها را در اختیار عموم قرار میدهند .تا با استفاده از اون کار هایی که در نظر دارند را انجام دهند . مثلا من برنامه نویسی یک برنامه ای طراحی کردم که در آن App نیاز دارم به چند صفحه وب دسترسی پیدا کنم .حالا اگر API های اندروید نبود من مجبور بود تا کل وب رو برنامه نویسی کنم ولی الان با وجود API من یک شی از وب را در برنامه خودم تعبیه میکنم و از صفحات وب در برنامه خودم استفاده میکنم .
یا یک مثال دیگر آن هم اینکه در مواقعی نیاز هست که در برنامه نویسی خودمون به دوربین دسترسی داشته باشیم همان طور که گفتم اگر این API نباشد من باید برنامه دوربین رو از ابتدا برنامه نویسی کنم ولی الان فقط یک شی از دوربین رو در برنامه جاسازی کرده و نیاز خودمون رو برطرف میکنیم .
استفاده های مختلف دیگر از API ها
بعد اینکه فهمیدیم Api چیست ؟ حالا ما باید بدانیم درچه مواردی از این API ها استفاده میکنیم که من برای اینکه شما با آنها اشنا شوید برای شما آوردم . یکی از این API ها Google Map هستش شما فرض کنید این API وجود نداشت که در این حالت برنامه نویس بدبخت مجبور بود کل برنامه MAP را برنامه نویسی کند ولی الان خیلی شیک و راحت میاد API گوگل مپ رو در برنامه ای که مدنظرش هست قرار میده و خیلی آسان از اون استفاده میکنه .
مثال های از این API ها میتوانیم به API گوگل Translate اشاره کنیم و یا یک استفاده جالبتر این که شما بااستفاده از استانداردی به نام oAuth میتوانید با استفاده از یک سرویس دیگر وارد یک سایت شوید بدون آن که در آن ثبت نام کنید .برای مثال وقتی شما میخواهید وارد سایت aparat یا هر سایت دیگری حساب باز کنید از شما میخواهد فرم مخصوص مربوط به اطلاعاتی را کامل کنید ولی شما میتوانید با حساب گوگل و یا فیسبوک خود وارد آن بشوید .
جمع بندی مطالب
به پایان آموزش امروز رسیدیم . من تمام سعیمو انجام دادم تا این مقاله برای شما عزیزان مفید بوده باشد . من هدف این بوده که شما در پایان این مقاله دونسته باشین که Api (رابط برنامه نویسی کاربردی) چیست ؟ و اینکه در این عصر تکنولوژی چه اهدافی رو دنبال میکند و اینکه به وجود آمدن API یا به نوعی استفاده از API ها چه مزایای برای ما دارد و ما در چه مواردی از این API ها استفاده میکنیم . و همچنین Json چیست و چه کارکردی دارد . اینها کلیه مطالبی بود که من در این مقاله برای ما عزیزان آوردم و انشالله نکات دیگر را در بروزرسانی های آینده به مقاله اضافه خواهم کرد .
موفق باشید .
عالی بود
ممنون
مرسی فقط یکم API ها رو گسترده توضیح بدین
چشم حتما
ممنون خیلیییی مفید بود دستتون درد نکنه
خواهش میکنیم .
لطف دارید