Vibecoding · 7-dars · 9-11 sinflar
Fan: IT / VibecodingПредмет: IT / VibecodingSubject: IT / Vibecoding Hafta: 2Неделя: 2Week: 2

API va JSON: Jonli Ma'lumotlar

Statik saytlardan dinamik ilovalarga sakraymiz. Saytimizni dunyo ma'lumotlar oqimiga qanday ulashni o'rganamiz.

Muammo

Statik saytlarning cheklovi

Oldingi darsda qilgan Pomodoro taymeringiz faqat o'z ichida ishladi. Unda tashqi dunyo ma'lumotlari yo'q edi.

  • Statik: Agar siz HTML ichida "Dollar kursi: 12,800 so'm" deb yozib qo'ysangiz, ertaga kurs o'zgarsa sayt eskiradi!
  • Dinamik: Sayt har soniyada Markaziy Bankdan jonli kursni so'rab olishi kerak. Buning uchun API kerak!
Tushuncha

API nima? (Restoran Metaforasi)

API (Application Programming Interface) — ikkita dastur bir-biri bilan gaplashadigan ko'prikdir.

1. Siz (Mijoz)

Stolda o'tirasiz (Saytingiz / Brauzer). Taom xohlaysiz.

👤

2. Ofitsiant (API)

Buyurtmani oshxonaga olib boradi va taomni qaytarib keltiradi.

🤵

3. Oshxona (Server/DB)

Ma'lumotlar ombori. Taomni (ma'lumotni) pishirib beradi.

🍳
Universal Til

JSON formati: Dasturlar Tili

Ofitsiant (API) ma'lumotni qanday ko'rinishda olib keladi? Odamlar o'zbekcha gaplashadi, dasturlar esa JSONda!

{
  "shahar": "Toshkent",
  "harorat": 24,
  "dollar_kursi": 12850.50,
  "ochiqmi": true
}
Tuzilma

JSON anatomiyasi: Kalit va Qiymat

JSON juda oddiy qoidaga bo'ysunadi: "Key" : Value (Kalit : Qiymat).

Key (Kalit)

Doim qo'shtirnoq ichida yoziladi. Ma'lumotning nomi (masalan: "ism", "narx").

Value (Qiymat)

Matn ("Olma"), Raqam (15000), Mantiq (true/false) yoki Ro'yxat ([]) bo'lishi mumkin.

So'rov turlari

HTTP Metodlari: GET va POST

Brauzer serverdan ma'lumot so'raganda HTTP buyruqlaridan foydalanadi:

GET (Olish)

Faqat ma'lumotni o'qish uchun. Serverdagi narsani o'zgartirmaydi. (Masalan: Ob-havoni bilish, valyuta kursini ko'rish).

POST (Yuborish)

Yangi ma'lumot jo'natish. Serverda yangi yozuv yaratadi. (Masalan: Saytda ro'yxatdan o'tish, pul o'tkazish).

Server javobi

Status Kodlar: 200, 404, 500

Server har bir so'rovga 3 xonali raqam bilan javob beradi:

200 OK

Hamma narsa zo'r! Ma'lumot yetib keldi.

404 Not Found

Bunday manzil yoki sahifa mavjud emas.

500 Server Error

Serverning o'zi buzildi yoki yonib ketdi.

Dunyo Xazinasi

Bepul va Ochiq API lar

Internetda ro'yxatdan o'tmasdan ishlatish mumkin bo'lgan minglab bepul API lar mavjud:

  • CBU API (cbu.uz): O'zbekiston Markaziy Bankining rasmiy kunlik valyuta kurslari.
  • CoinGecko API: Bitcoin, Ethereum va 10,000 dan ortiq kriptovalyutalarning jonli narxi.
  • OpenWeather API: Dunyodagi har qanday shaharning ob-havosi.
Vibecoder Usuli

AI dan API integratsiyasini so'rash

Havaskor: "Menga dollar kursini ko'rsatadigan sayt qil." (AI eski yoki o'ylab topilgan raqam chiqaradi).

Vibecoder Prompti:

"JavaScript fetch() orqali quyidagi ochiq API manziliga GET so'rov yubor: [URL]. Undan kelgan JSON javobdagi 'rate' qiymatini olib, HTML dagi katta kartochkada jonli ko'rsat. Agar xatolik (error) yuz bersa, ekranga qizil ogohlantirish chiqar."

Eng mashhur to'siq

CORS Xatosi nima?

API bilan ishlaganda eng ko'p uchraydigan qizil yozuv: CORS Error (Cross-Origin Resource Sharing).

  • Nega sodir bo'ladi? Brauzer xavfsizlik yuzasidan boshqa saytning serveriga to'g'ridan-to'g'ri kirishni bloklashi mumkin.
  • Yechim: Ochiq (CORS ruxsat berilgan) API lardan foydalanish yoki AI ga "CORS proxy ishlat" deb buyruq berish.
Birinchi So'rov

Amaliy Vazifa: JSON ni Ekranga Chiqarish

  1. Claude yoki v0 ni oching.
  2. AI ga quyidagi vazifani bering: "Bitta tugma va karta yarat. Tugma bosilganda cbu.uz yoki ochiq valyuta API dan dollar kursini olib kartaga yozsin."
  3. Brauzer DevTools (F12) ning Network bo'limini ochib, JSON javobini ko'ring!
Dars Yakuni

Bugun nimalarni o'zlashtirdik?

  • API: Dasturlar va serverlar o'rtasidagi ma'lumot ko'prigi (Ofitsiant).
  • JSON: Universal ma'lumot formati (Kalit va Qiymat).
  • Keyingi darsda ushbu bilimlarimiz asosida to'liq ishlaydigan Valyuta va Kripto Konverteri ilovasini noldan quramiz!
Target International SchoolTarget International School Kirish 0–2
1 / 14