API nima va nega kerak

API dastur bilan boshqa xizmat o'rtasida ma'lumot almashish ko'prigi bo'lishini ko'rsatuvchi rasm
API bir dasturga boshqa dastur yoki xizmat imkoniyatlaridan kelishilgan usulda foydalanish imkonini beradi.

O’tgan darslarda server brauzerga sahifa qaytarishini va u ma’lumotni ma’lumotlar bazasida saqlashini ko’rdik. Endi boshqa savol tug’iladi: dastur boshqa dasturdan ma’lumot olishi kerak bo’lsa-chi? Aynan shu joyda API ishga tushadi.

Muammo: har narsani o’zi yozib bo’lmaydi

Tasavvur qiling, siz sayt yasayapsiz va unda bugungi ob-havo ko’rinishi kerak. Ob-havoni bilish uchun nima qilish kerak? Butun mamlakat bo’ylab meteostansiya qurib, harorat o’lchab chiqasizmi? Albatta yo’q.

Ob-havo bilan shug’ullanadigan tashkilotlar bor va ularda bu ma’lumot allaqachon mavjud. Sizga kerak bo’lgani — o’sha ma’lumotni so’rab olish usuli. Shu usul API deb ataladi.

Restoran qiyosi

API ni tushunishning eng qulay yo’li — restoran. Siz oshxonaga kirib, o’zingiz ovqat pishirmaysiz. Ofitsiantga buyurtma berasiz, u oshxonaga aytadi va tayyor taomni olib keladi.

Bu yerda:

  • Siz — ma’lumot so’rayotgan dastur
  • Oshxona — ma’lumot saqlanadigan server
  • Ofitsiant — API
  • Menyu — API hujjati: nima so’rash mumkinligi ro’yxati

Muhim jihat: siz oshxona ichida nima bo’layotganini bilmaysiz va bilishingiz ham shart emas. Qaysi pechda pishirilgani, oshpaz kimligi — sizga qorong’u. Sizga faqat natija kerak. API ham xuddi shunday ishlaydi: ichki tuzilishni yashiradi, faqat natijani beradi.

API amalda qanday ishlaydi

Web API’lar ko’pincha HTTP so’rov-javob mexanizmiga tayanadi — darsda ko’rganimiz bilan bir xil. API tushunchasi HTTPdan kengroq, lekin web dasturlashda eng ko’p HTTP orqali ishlaydigan API’larni uchratasiz. Bunday API ko’pincha HTML sahifa emas, dastur oson o’qiydigan tuzilgan ma’lumot qaytaradi.

Odatiy sahifa so’ralganda server HTML qaytaradi:

<h1>Toshkent</h1>
<p>Harorat: 32 daraja</p>

Bu brauzerda ko’rsatish uchun qulay, lekin dastur uchun noqulay: kerakli sonni teglar orasidan ajratib olish kerak bo’ladi. Shuning uchun API boshqacha javob beradi:

{
  "shahar": "Toshkent",
  "harorat": 32,
  "holat": "ochiq"
}

Bu JSON formati. Dastur undan harorat qiymatini bir qadamda oladi.

Dastur API ga HTTP so'rov yuborishi, server ishlashi va JSON javob qaytishini ko'rsatuvchi oqim

Dastur API orqali HTTP so’rov yuboradi, server esa HTML sahifa o’rniga JSON ko’rinishidagi toza ma’lumotni qaytaradi.

REST — web API loyihalash uslubi

Web API’ni loyihalashning turli usullari bor. Keng tarqalganlaridan biri — REST. REST tayyor protokol yoki qat’iy kod shabloni emas; u resurslar va HTTP imkoniyatlaridan izchil foydalanishga yordam beradigan arxitektura uslubidir.

REST ning asosiy g’oyasi sodda: har bir manzil bitta narsani anglatadi, har bir HTTP metodi esa u bilan nima qilishni bildiradi.

So’rov Ma’nosi
GET /mahsulotlar Barcha mahsulotlar ro’yxatini ber
GET /mahsulotlar/5 5-raqamli mahsulotni ber
POST /mahsulotlar Yangi mahsulot qo’sh
PUT /mahsulotlar/5 5-raqamli mahsulotni to’liq almashtir
PATCH /mahsulotlar/5 5-raqamli mahsulotning bir qismini o’zgartir
DELETE /mahsulotlar/5 5-raqamli mahsulotni o’chir

E’tibor bering: manzil resursni, metod esa niyatni ifodalaydi. GET, POST, PUT, PATCH va DELETE metodlarini HTTP darsida ko’rgan edik. Yaxshi API faqat chiroyli URL emas: to’g’ri holat kodi, tushunarli xato javobi, autentifikatsiya, versiyalash va hujjat ham muhim.

REST API dagi GET ma'lumot olish, POST qo'shish, PUT o'zgartirish va DELETE o'chirish amallari

REST uslubida manzil resursni, GET, POST, PUT va DELETE metodlari esa bajariladigan amalni bildiradi.

API qayerda ishlatiladi

API bir necha ishni ko’rinmas holda bajaradi:

  • To’lov — saytdagi “karta bilan to’lash” tugmasi bank API siga murojaat qiladi. Sayt karta ma’lumotini o’zi tekshirmaydi.
  • Xarita — saytga joylashtirilgan xarita xarita xizmati API sidan keladi.
  • Kirish — “Google orqali kirish” tugmasi Google API si orqali ishlaydi.
  • O’z ilovangiz — mobil ilova va sayt bitta backend API sidan foydalanadi.

Oxirgi nuqta ayniqsa muhim. Bir xizmatning ham sayti, ham mobil ilovasi bo’lsa, ular uchun alohida backend yozilmaydi: bitta API yoziladi va ikkalasi ham undan foydalanadi.

API javobidagi xatolar

Tarmoqdagi har bir so’rov muvaffaqiyatli tugamaydi. API 400 bilan noto’g’ri ma’lumot, 401 bilan autentifikatsiya kerakligini, 403 bilan ruxsat yo’qligini yoki 500 bilan server xatosini bildirishi mumkin. Frontend faqat JSON ichidagi qiymatni emas, HTTP holat kodini ham tekshirishi kerak.

Qisqacha xulosa

  • API — bir dastur boshqa dasturga imkoniyatlarini taqdim etish usuli.
  • U ichki tuzilishni yashiradi, faqat natijani beradi — restorandagi ofitsiant kabi.
  • Web API odatda HTTP orqali ishlaydi va ko’pincha JSON qaytaradi.
  • REST — resurs, metod va HTTP semantikasiga tayanuvchi arxitektura uslubi.
  • PUT resursni to’liq, PATCH esa qisman o’zgartirish niyatini bildiradi.
  • To’lov, xarita, kirish va mobil ilovalar API ustida qurilgan.
  • Maxfiy API kaliti frontend kodiga yozilmaydi; API xatolari va holat kodlari alohida qayta ishlanadi.

Keyingi darsda REST, GraphQL va WebSocket — dasturlar o’rtasidagi aloqa uchun turli yondashuvlarni solishtiramiz.

Bu dars foydali bo'ldimi?

marta ko'rildi