نمیتونیم توی عصر دیجیتال و توسعه انواع زبانهای برنامهنویسی، نقش پررنگ جاوا اسکریپت رو نادیده بگیریم. این زبان تونسته بعد از چند سال، از یه افزونه کوچیک به یک ابزار پرقدرت با کاربردهای خیلی زیاد تبدیل بشه. در حال حاضر جاوا اسکریپت، کمکهای بزرگی به توسعهدهندهها و برنامهنویسها میکنه. اما باید بدونیم که غالباً کاربرد این زبان متکی بر تعامل با API های گوناگون هست. اگر میخواین با کاربرد API در آموزش جاوا اسکریپت آشنا بشین، ما تو این مقاله، این مفاهیم رو به سادهترین شکل ممکن معرفی و بررسی کردهایم. پس اگر میخواین به این مفهوم مسلط بشین، این مقاله از بلاگ آموزشگاه مهندسی کندو رو تا آخر بخونین.
API چیه؟
قبل از اینکه بخوایم کارکرد API در جاوا اسکریپت رو بررسی کنیم، باید ابتدا این مفاهیم مهم رو تعریف کنیم. API مخفف رابط برنامهنویسی کاربردی هست. API صرفاً محدود به جاوا اسکریپت نیست و کاربردهای خیلی زیاد دیگهای توی تمامی زبانهای وب داره. اگر توسعهدهنده وب هستین، احتمالاً با مفهوم API آشنا هستین. ولی یه بار دیگه این مفهوم رو تعریف میکنیم.
API بهعنوان یه مفهوم، قدمتی 50 ساله داره ولی توی سالهای اخیر، به یکی از مشهورترین و شاخصترین روشها واسه ایجاد برنامهها و اپلیکیشنها تبدیل شده. حالا تصور کنین که میخواین یک اپلیکیشن اینترنتی درست کنین که توی اون، کاربران میتونن در مورد آخرین سفرهاشون صحبت کنن، داستانهای دلخواهشون رو بنویسن و به اشتراک بذارن. اونا احتمالاً از پلتفرمهایی مث فیسبوک یا اینستاگرام استفاده میکنن.
اما چه طوری؟ ما به اپلیکیشن اینستاگرام و دادههای اونا دسترسی نداریم. نمیدونیم اونا چه طوری دادههای خودشون رو مدیریت میکنن و یا اینکه چه طوری دادههای اپلیکیشن ما با پایگاههای داده اونها تطبیق پیدا میکنه.
مگه میشه بدون API؟
حالا تصور کنین که اینستاگرام امکان استفاده از افزونه رو بدون API ها بده. شاید احتمالاً ما خیلی سریع به اینستاگرام ایمیل میزنیم و میگیم به ما هم اجازه دسترسی به پایگاه داده خودش رو بده تا ما بتونیم محتوا بنویسیم. احتمالاً کارشناسان اینستاگرام میلیونها پیام مثل این رو دریافت کرده باشن، چون خیلی از افراد میخوان از افزونههای اینستاگرام استفاده کنن.
شاید تصور کنین که اینستاگرام اجازه دسترسی به پایگاههای داده خودش رو به میلیونها کاربر میده. ولی خوب منطقی نیست. اینطوری خیلی از اپلیکیشن های دیگه هم بدون کاربرد میشن؛ یعنی اونا نمیتونن با هم ارتباط برقرار کنن و از ویژگیهای هم پشتیبانی کنن.
تأثیر API ها بر برنامهها
ولی خوشبختانه داریم توی دنیایی زندگی میکنیم که میتونیم با کمک API ها، بهسادگی با اپهای دیگه ارتباط برقرار کنیم. من میتونم یه اپلیکیشن درست کنم و توی اون، از جستجوی گوگل، فید فیسبوک، پست اینستاگرام یا توییتهای توییتر بهصورت همزمان استفاده کنم. همه اینها با استفاده از API میسر شده. همون طور که از اسم API هم مشخصه، ما میتونیم رابطی رو ایجاد کنیم که باعث ارتباط برنامههای مختلف با هم بشه.
هر API نقطه ورودی خاص خودش رو داره و میشه از این نقطه جهت دسترسی به ویژگیهای api ها استفاده کرد. مثلاً در جاوا اسکریپت واسه کار با DOM، Document (سند) بهعنوان نقطه ورودی برای کار با روشهای مختلف در نظر گرفته میشه. کاربر میتونه از این نقطه برای کنترل DOM استفاده کنه. باوجوداین، ما از کنترلهای HTML در جاوا اسکریپت استفاده میکنیم که توانایی فراخوانی API ها رو داره و میشه پاسخ رو با اون کنترل، تغییر داده و ارائه کرد.
جاوا اسکریپت چیه؟
تعریف دیگه ای که باید واسه بررسی API در جاوا اسکریپت ارزیابی بشه، جاوا اسکریپت هست. جاوا اسکریپت، یکی از پرکاربردترین زبانهای برنامهنویسی هست، هرچند که بیشتر توی جستجوگرها برای ارائه فایلهای HTML و CSS استفاده میشه. همچنین امکان اجرای آن در سرورهای ما برای کنترل و مدیریت درخواستهای کاربران، اتصال با پایگاههای داده و انجام هر کار دیگهای که هر زبان برنامهنویسی در آموزش برنامه نویسی میتونه بر روی سرور انجام بده، وجود داره. حالا میتونیم API در جاوا اسکریپت رو بررسی کنیم.
API در جاوا اسکریپت
جاوا اسکریپت که یکی از پرکاربردترین زبان برنامهنویسی هست، و آموزش جاوا اسکریپت هم طرفداران زیادی داره. js مجموعه بسیار زیادی از API ها رو داره که باعث میشن کار توسعهدهنده جاوا اسکریپت، خیلی راحتتر بشه. همچنین جاوا اسکریپت یک زبان چندمنظوره هست که نهتنها در جستجوگرها، بلکه در سرورها یا موبایلها هم کاربرد داره. این زبان واسه پشتیبانی از پلتفرمهای مختلف، مجموعه متفاوتی از API ها رو داره. همچنین این زبان میتونه مجموعه بزرگی از کنترلها و ویژگیهای دیگه رو ارائه کنه.
API های جستجوگر در جاوا اسکریپت
یکی از موضوعات مهم API ها در جاوا اسکریپت، بررسی جستجوگرها هست. جستجوگرها از جاوا اسکریپت برای نمایش صفحات وب، مدیریت تعاملات کاربران، ارسال درخواست به سرورها و دریافت پاسخ استفاده میکنن. برای همین، جاوا اسکریپت، API های جستجوگر رو ارائه میکنه که برای انجام وظایف مرتبط با جستجوگر، قابلاستفاده هستند:
کار با DOM
DOM، مخفف مدل شیء سند و ساختاری هست که میتونه کلیه کنترلهای HTML رو در یک صفحه وب، حفظ کنه. این مدل علاوه بر قابلیت نگهداری، میتونه کنترلها را به آن اضافه کرده و یا کم کنین. ممکنه با API سند که برای جابجایی یا حذف المانها از DOM کار کرده باشین که متعلق به DOM API جاوا اسکریپت هست.
مثال | document.getElementById(“header”).text(“This is a header”); |
درخواست داده از سرور
جاوا با بهروز کردن قسمتی از صفحه بهجای بارگذاری کل صفحه، کاربرد خیلی زیادی توی بهینهسازی صفحههای وب داره. مثلاً وقتی شما پستی رو در فیسبوک بارگذاری می کنین، کل صفحه دوباره بارگذاری نمیشه، فقط اون بخش مرتبط با پست، بهروز میشه. همچنین وقتی ما توییت میکنیم، برای نشون دادن توییت های جدید، کل صفحه توییت نمیشه. این موضوع نشون میده که چه طور جاوا اسکریپت، فراخوانیهای جزئی را در سرور با استفاده از فچ AJAX apis انجام میده. این موضوع، جزو مسائل مهم API در جاوا اسکریپت هست.
مثال:
ذخیرهسازی داده در کلاینت
با اینکه ما پایگاه دادههایی داریم که قابلیت پردازش روزانه ترابایت ها داده رو در سرورها داره، ممکنه شما بخواین مقدار قابلتوجهی داده رو در جستجوگرهای کلاینت واسه بهینهسازی عملکردهای بهینه، نگهداری و ذخیره کنین. چه طوری این کار رو انجام میدیم؟
جاوا اسکریپت میتونه با ارائه API هایی مثل لوکال استوریج، سشن استوریج برای ذخیرهسازی دادهها در جستجوگر کلاینت و حذف آن در صورت نیاز، به ما کمک کنه. تفاوت بین لوکال استوریج (localStorage) و سشن استوریج (sessionStorage) این هست که دادههای ذخیره شده در لوکال استوریج، حتی بعد از بسته شدن جستجوگر یا تب، باقی میمونه، درحالیکه دادههای ذخیره شده در سشن استوریج با بسته شدن جستجوگر یا تب، پاک میشه.
البته هر کدوم از اینها مزیتهای خاص خودشون رو دارن که شما میتونین بر اساس نیازهای خودتون استفاده کنین. میشه اهمیت API در جاوا اسکریپت رو کاملاً درک کرد.
کار با ابزارهای گرافیکی
شما برنامههای معروف گرافیکی دوبعدی یا سهبعدی رو دیدین که با استفاده از تعامل کاربر ایجاد شدن و امکان ایجاد ترسیمات مختلف رو به کاربران دادن. البته منظور من فقط CSS (شیوهنامه آبشاری) نیست. درسته که CSS هم اهمیت داره ولی برای ایجاد ترسیمات دوبعدی/ سهبعدی در اینترنت، ما به ابزاری بزرگتر از CSS نیاز داریم. جاوا اسکریپت api کانوایی رو ارائه میکنه که جهت کار با پیکسلهای صفحه وب برای ترسیم تصاویر دوبعدی/ سهبعدی بهصورت تگ <canvas> html استفاده میشه.
API های واسط
یکپارچهسازی ساختارهای ناشناخته با برنامههای دیگه، دشوار به نظر میرسه. اما جاوا اسکریپت این امکان رو به ما میده تا بتونیم بسیاری از برنامههای واسط شناخته شده مثل توییتر، یوتیوب و فیسبوک رو یکپارچه کنیم. اینم یکی دیگه از کاربردهای مهم API در جاوا اسکریپت.
مثلاً فرض کنین که در وبسایت شرکت شما، قراره که تازهترین توییتهای حساب توییتری شرکت، نشون داده بشه. خوب باید چه کار کنیم؟
API توییتر جاوا اسکریپت، جواب این سؤال هست. این API نهفقط متعلق به توییتر هست، بلکه میشه بسیاری دیگه از برنامههای شناخته شده دیگه رو در صفحه وب با استفاده از API های واسط در جاوا اسکریپت، یکپارچه کرد. حالا خیلی بیشتر از قبل، به اهمیت API در جاوا اسکریپت، پی بردین.
مطرحترین API در جاوا اسکرپیت
API های جستجوگر
ما توی بخشهای قبل در مورد این API ها صحبت کردیم و چون جاوا اسکریپت، قابلیت ارائه برنامههای تحت وب بر روی مرورگر رو داره، شهرت API های جستجوگر آشکار هست.
API های کانوا
این API در جاوا اسکریپت، یکی از محبوبترین API های بسیاری از توسعهدهندهها در حوزه گرافیک هست و باید از برنامههای تعاملی برای کلاینت آنها بهمنظور کار مؤثر با ترسیمات و المانهای گرافیکی در صفحات وب استفاده کرد.
API های رسانه اجتماعی
این API در جاوا اسکریپت، یکی از رایجترین API های امروزی هست. هر اپلیکیشن تحت وبی که مخاطب رو هدف قرار میده، به یکپارچهسازی در برنامه خودشون نیاز دارن، مثل فیسبوک، توییتر یا اینستاگرام
ابزارهای جاوا اسکریپت و رابطه بین آنها
کتابخانههای جاوا اسکریپت
بعضی از کتابخانههای جاوا اسکریپت مثل جی کوئری و ری اکت وجود دارن که جاوا اسپریکت رو با سینتکس جدید خودشون، پیادهسازی میکنن. بهطور مثال، روش دسترسی DOM ما با استفاده از جاوا اسکریپت وانیلا و روش جی کوئری متفاوت هست، اما درنهایت، هر دو از API مشابه استفاده می کنن.
چارچوبهای جاوا اسکریپت
چارچوبهای جاوا اسکریپت مثل انگولار و وو، بخش عمدهای از API در جاوا اسکریپت رو تشکیل میدن. تفاوت بین چارچوبها ناشی از ساختار، جریان داده و الگوهای متفاوت برای کار با جاوا اسکریپت جهت پیاده سازی API هست.
بیشتر بخوانید: مقایسه زبان برنامه نویسی پایتون و جاوا
سخن آخر
ما تو این مقاله از بلاگ کندو در مورد API در جاوا اسکریپت بحث کردیم. می تونیم API رو مثل تلفنی فرض کنیم که میشه مدتهای نامحدودی رو توی یک برنامه صحبت کرد و امکان ارتباط با تمامی برنامههای دیگه در سراسر جهان وجود داره. علت اهمیت API در جاوا اسکریپت، این هست که یک برنامه نمیتونه همه کارها رو انجام بده. برنامهها به کمک هم نیاز دارن. می شه از API ها برای کاربردهای خارجی و داخلی استفاده کرد.
می شه با API های خارجی با برنامههای دیگه ارتباط برقرار کرد و توسعهدهندگان با API های داخلی میتونن، عملکرد مؤثری با ابزارهای دیگه داشته باشن. جاوا اسکریپت بهعنوان یکی از معروفترین زبانهای برنامهنویسی در دنیا، از این موضوع آگاه هست و رابطهای بسیار زیادی رو برای ما در زمینههای مختلف ارائه کرده.