API nima? Boshlovchilar uchun oddiy tushuncha
Bu atama dasturlash bilan ozgina bo’lsa ham shug’ullangan odam uchun nimanidir anglatadi. Lekin, hamma ham u nimani anglatishini va u nimaga kerakligini to’liq tushunishmaydi. Dastuchi Pyoter Gazarov API haqida oddiy tilda o’zining blogida gapirib berdi.
API abbereviaturasi «Application Programming Interface» so’zlarining bosh harflaridan olingan bo’lib, dasturlarni dasturlash interfeysi yoki dastularni dasturiy interfeysi deb tarjima qilinadi. Ko’plab katta kompaniyalar ma’lum darajaga yetishganda, o’z mijozlari yoki kompaniya ichida qo’lanilishi uchun, API yaratishadi. API’ni dastur yaratishda yoki biznesda qanday qo’llanilishi tushunish uchun avvalo «butunjahon o’rgimchak to’ri» qanday ishlashi bilan tanishib chiqish kerak bo’ladi.
Butunjahon o’rgimchak to’ri va uzoqdagi(boshqa joydagi) serverlar
WWW’ni bir-biri bilan bog’langan, serverlarning katta tarmog’i sifatida tasavvur qilish mumkin va ularda har bitta sahifa saqlanadi. Oddiy noutbukni tarmoqda butun bir sayt ishlashini ta’minlaydigan serverga aylantirish ham mumkin. Lokal serverlar esa, dasturchilarga ular sayt yaratishlari uchun vaqtincha server vazifasini bajarishi mumkin. Brauzerning manzil qatorida
www.facebook.com yozilganda, boshqa joydagi facebook serveriga kerakli so’rov yuboriladi. Brauzer serverdan javob olish bilanoq u kodni interpretatsiya qiladi(«chizadi») va foydalanuvchiga sahifani ko’rsatadi.
Foydalanuvchi har gal tarmoqdagi qaysidir sahifaga tashrif buyurganda u boshqa joydagi server API’si bilan bog’lanadi. API — serverning asosiy qismi bo’lib, u so’rovlar qabul qiladi va ularga javoblar qaytaradi.
API — mijozlarga xizmat ko’rsatish usuli
Ko’plab kompaniyalar API’ni tayyor mahsulot sifatida taqdim etishadi. Masalan, Weather Underground metereologik ma’lumotlar olish uchun API sotadi.
Google Kalendarning API’sini tarmoqdagi boshqa serverlarning API’sidan qanday farqi bor?
Bu savolga texnik yondashadigan bo’lsak, so’rov va javobning formatida. Brauzer butun web sahifani generatsiya qilish uchun javobni HTML ifodalash tilida kutadi. Google Kalendarning API’si esa ma’lumotlarni JSON formatda qaytaradi.
Agar API’ga so’rovni kompaniyasi veb sayti serveri yuborsa, kompaniya serveri mijoz bo’ladi(huddi foydalanuvchi saytni tashrif buyurganda brauzer mijoz bo’lgani kabi).
API yordamida faydalanuvchi saytni tark etmagan holda har xil harakatlar qilish imkoniga ega bo’ladi.
Hozirda saytlar aksariyat hollarda bir nechta API xizmatlardan foydalanishadi. Ko’plab topshiriqlar tayyor yechimlarga ega bo’lib, bu holda ular dasturchilarga kutubxonalar yoki boshqa xizmatlar taklif qilishadi. Va albatta umuman olib qaraganda aynan shunaqa tayyor yechimlardan foydalanish eng to’g’ri yo’l hisoblanadi.
Ko’plab dasturchilar dastur yaratish jarayonida dastur qismlarini bir nechta serverlarga bo’lib yuboradilar. Bu qismlar o’zaro API yordamida ma’lumot almashadilar. Bosh serverga qo’shimcha yoki yordamchi funksiyalar taqdim etadigan dasturlar — mikroxizmatlar(microservices) deb ataladi.
Shunday qilib, kompaniya o’z foydalanuvchilariga API taqdim etishi — kompaniya bir qancha maxsus URL yaratgan, ular esa o’z navbatida faqat ma’lumot qaytarishi demakdir.
Ko’p hollarda bunday so’rovlarni brazuer yordamida yuborish mumkin. HTTP protokol orqali ma’lumot almashish matn ko’rinishida bo’lganligi sababli, brauzerlar API qaytargan javobni bemalol ko’rsata olishadi. Masalan, brauzer yordamida to’g’ridan-to’g’ri GitHub API’ga ulanish mumkin, va bunda quyidagi JSON formatdagi javobni olish mumkin:
Brauzer hech qanday qiyinchilik va muommosiz JSON javobni namoyish eta oladi. Bunday matndan hech qanday qiyinchiliksiz keyinchalik qo’llash uchun istalgan ma’lumotni ajratib olish mumkin.
API’larga yana bir nechta misol
«application» (dastur, ilova) so’zi bir qancha hollarda qo’llanilishi mumkin. API holatida u:
- dasturiy ta’minotning oldindan aniqlab olingan funksiyasiga javob beruvchi qismi;
- butun bir server, butun bir dastur yoki dasturni alohida bir qismi.
Umuman olganda, har qanday dasturiy ta’minotning fragmentini umumiy to’plamdan ajratib olish mumkin va uni ingliz abbreviaturasidagi «A» harfi bilan almashtirish mumkin. Va u ham qaysidir ma’noda API’ga ega bo’lishi mumkin. Masalan. dasturchi biron bir kodni o’z dasturiga tadbiq qilishi uchun boshqa dasturchilar tomonidan yaratilgan kutubxonadan foydalanishi mumkin. Va bu kutubxona dasturchi dasturining bir qismi bo’lib qoladi. Bunda u dasturiy ta’minotning mustaqil fragmenti bo’ladi va dasturning boshqa joylaridan kodda unga murojaat qilish uchun o’z API’siga ega bo’ladi.
Obyektga yo’naltirilgan loyihalashda kod mustaqil obyektlar ko’rinishida bo’ladi. Dasturda bir-biri bilan muloqotda bo’ladigan bunday obyektlar soni yuzdan oshiq bo’lishi mumkin. Va bunda ularning har birida o’zining API’si bo’ladi. Demak bu holda API — dasturdagi obyektlarning ochiq metod va xossalari bo’lib, ular yordamida obyektlar o’zaro muloqotda bo’lishadi. Bundan tashqari obyektlar shaxsiy, ichki logikaga ega bo’lishi va bu logikalar yashirilgan bo’lishi mumkin. Lekin ular API bo’la olmaydi.
Manba:
API
API nima? Boshlovchilar uchun oddiy tushuncha