GoDasturchi
Project Overview & API Design Principles

Project Overview & API Design Principles

Loyihaga umumiy nazar va API dizayni tamoyillari

Uyda pishirilgan ovqat bilan restoran oshxonasidagi ovqat orasidagi farqni o'ylab ko'ring. Uyda siz o'zingiz uchun pishirasiz: tuz qancha kerakligini "ko'z bilan" belgilaysiz, idish yuvilmagan bo'lsa kutasiz, va agar kimdir "bu taomda nima bor?" desa, xotirangizdan aytib berasiz. Restoran oshxonasi esa BUTUNLAY BOSHQACHA: har bir taom ANIQ retsept bo'yicha, har safar BIR XIL tayyorlanadi; sog'liqni saqlash nazorati kelsa, hamma jarayon yozib qo'yilgan; allergiyasi bor mijoz uchun tarkib ANIQ ko'rsatilgan; va oshpaz kasal bo'lib qolsa ham, boshqa oshpaz xuddi shu retsept bo'yicha xuddi shu taomni tayyorlay oladi. Production-ready API — aynan shu "restoran oshxonasi" darajasidagi dastur: uni SIZDAN BOSHQA HAM ISHLATA OLADI, siz yo'q bo'lsangiz ham ISHLAYVERADI, va kutilmagan holatlarda ham OQILONA javob beradi.

"O'yinchoq" (toy) API — bitta demo uchun yozilgan, faqat "baxtli yo'l"da (happy path, hammasi to'g'ri kelganda) ishlaydigan kod: so'rov tanasi noto'g'ri bo'lsa dastur qulaydi, xato xabarlari HAR XIL formatda, ID topilmasa ham 200 qaytadi, va bitta mijoz minglab so'rov yuborsa server "cho'kadi". Bu kursda siz o'rganadigan production-ready API esa quyidagilarni QAT'IY ta'minlaydi:

  • Resurs modellashtirish — URL'lar OT (nouns) bilan nomlanadi, FE'L (verb) bilan emas: /books, getBooks emas
  • Validatsiya — noto'g'ri ma'lumot serverga YETMASDAN OLDIN rad etiladi, aniq xato xabari bilan
  • Izchil xato formati — BARCHA endpoint'lar bir xil JSON "xato konverti"da javob beradi
  • To'g'ri HTTP status kodlari — 200, 201, 400, 404, 409, 422, 500 — HAR BIRI o'z o'rnida ishlatiladi
  • Sahifalash (pagination) — minglab yozuvni BIR SO'ROVDA emas, bo'lib-bo'lib qaytarish
  • Filtrlash va saralash — mijoz kerakli qismini so'rab olishi mumkin
  • Idempotentlik — bitta so'rov TARMOQ XATOSI tufayli ikki marta yuborilsa ham, natija BIR MARTA qo'llanadi
  • Versiyalash — API o'zgarganda ESKI mijozlar BUZILMAYDI
  • Autentifikatsiya va avtorizatsiya — kim ekaningizni va NIMA qilishga haqli ekaningizni tekshirish
  • Tezlikni cheklash (rate limiting) — bitta mijoz BUTUN serverni band qilib qo'ymasligi
  • Test qilinganlik — kod ISHLASHINI his-tuyg'u bilan emas, AVTOMATIK testlar bilan isbotlash

Bu tamoyillarni BO'SH joyda emas, BITTA aniq loyiha ustida, bosqichma-bosqich o'rganamiz: kitob do'koni (bookstore) API'siBook resursini (ID, sarlavha, muallif, narx, ombordagi soni) boshqaradigan REST xizmat. Har bir dars — oldingi darsda qurilgan API'ning USTIGA yangi production-darajadagi qatlam qo'shadi: avval oddiy CRUD, keyin validatsiya, keyin xatolar, keyin sahifalash, keyin autentifikatsiya, va hokazo — xuddi haqiqiy jamoada API qanday RIVOJLANTIRILSA, shunday.

Oxirida sizda — validatsiya qiladigan, izchil xatolar qaytaradigan, sahifalaydigan, autentifikatsiya va avtorizatsiyani tekshiradigan, tezlikni cheklaydigan va AVTOMATIK test qilingan, TO'LIQ ishlaydigan Bookstore REST API bo'ladi — production muhitiga tayyor bo'lgan darajada.

Key Takeaway

Key Takeaway:

"Production-ready" API — faqat "to'g'ri javob qaytaradigan" kod emas, balki noto'g'ri kirishni rad etadigan, izchil xatolar bilan javob beradigan, katta hajmni boshqaradigan va o'zgarganda eski mijozlarni buzmaydigan tizim; shu kursda bularning barchasini BITTA Bookstore API'sida, bosqichma-bosqich quramiz.

NEXT UP

Resource Modeling & URL Design

Project Overview & API Design Principles

Loyihaga umumiy nazar va API dizayni tamoyillari

Uyda pishirilgan ovqat bilan restoran oshxonasidagi ovqat orasidagi farqni o'ylab ko'ring. Uyda siz o'zingiz uchun pishirasiz: tuz qancha kerakligini "ko'z bilan" belgilaysiz, idish yuvilmagan bo'lsa kutasiz, va agar kimdir "bu taomda nima bor?" desa, xotirangizdan aytib berasiz. Restoran oshxonasi esa BUTUNLAY BOSHQACHA: har bir taom ANIQ retsept bo'yicha, har safar BIR XIL tayyorlanadi; sog'liqni saqlash nazorati kelsa, hamma jarayon yozib qo'yilgan; allergiyasi bor mijoz uchun tarkib ANIQ ko'rsatilgan; va oshpaz kasal bo'lib qolsa ham, boshqa oshpaz xuddi shu retsept bo'yicha xuddi shu taomni tayyorlay oladi. Production-ready API — aynan shu "restoran oshxonasi" darajasidagi dastur: uni SIZDAN BOSHQA HAM ISHLATA OLADI, siz yo'q bo'lsangiz ham ISHLAYVERADI, va kutilmagan holatlarda ham OQILONA javob beradi.

"O'yinchoq" (toy) API — bitta demo uchun yozilgan, faqat "baxtli yo'l"da (happy path, hammasi to'g'ri kelganda) ishlaydigan kod: so'rov tanasi noto'g'ri bo'lsa dastur qulaydi, xato xabarlari HAR XIL formatda, ID topilmasa ham 200 qaytadi, va bitta mijoz minglab so'rov yuborsa server "cho'kadi". Bu kursda siz o'rganadigan production-ready API esa quyidagilarni QAT'IY ta'minlaydi:

  • Resurs modellashtirish — URL'lar OT (nouns) bilan nomlanadi, FE'L (verb) bilan emas: /books, getBooks emas
  • Validatsiya — noto'g'ri ma'lumot serverga YETMASDAN OLDIN rad etiladi, aniq xato xabari bilan
  • Izchil xato formati — BARCHA endpoint'lar bir xil JSON "xato konverti"da javob beradi
  • To'g'ri HTTP status kodlari — 200, 201, 400, 404, 409, 422, 500 — HAR BIRI o'z o'rnida ishlatiladi
  • Sahifalash (pagination) — minglab yozuvni BIR SO'ROVDA emas, bo'lib-bo'lib qaytarish
  • Filtrlash va saralash — mijoz kerakli qismini so'rab olishi mumkin
  • Idempotentlik — bitta so'rov TARMOQ XATOSI tufayli ikki marta yuborilsa ham, natija BIR MARTA qo'llanadi
  • Versiyalash — API o'zgarganda ESKI mijozlar BUZILMAYDI
  • Autentifikatsiya va avtorizatsiya — kim ekaningizni va NIMA qilishga haqli ekaningizni tekshirish
  • Tezlikni cheklash (rate limiting) — bitta mijoz BUTUN serverni band qilib qo'ymasligi
  • Test qilinganlik — kod ISHLASHINI his-tuyg'u bilan emas, AVTOMATIK testlar bilan isbotlash

Bu tamoyillarni BO'SH joyda emas, BITTA aniq loyiha ustida, bosqichma-bosqich o'rganamiz: kitob do'koni (bookstore) API'siBook resursini (ID, sarlavha, muallif, narx, ombordagi soni) boshqaradigan REST xizmat. Har bir dars — oldingi darsda qurilgan API'ning USTIGA yangi production-darajadagi qatlam qo'shadi: avval oddiy CRUD, keyin validatsiya, keyin xatolar, keyin sahifalash, keyin autentifikatsiya, va hokazo — xuddi haqiqiy jamoada API qanday RIVOJLANTIRILSA, shunday.

Oxirida sizda — validatsiya qiladigan, izchil xatolar qaytaradigan, sahifalaydigan, autentifikatsiya va avtorizatsiyani tekshiradigan, tezlikni cheklaydigan va AVTOMATIK test qilingan, TO'LIQ ishlaydigan Bookstore REST API bo'ladi — production muhitiga tayyor bo'lgan darajada.

Key Takeaway

Key Takeaway:

"Production-ready" API — faqat "to'g'ri javob qaytaradigan" kod emas, balki noto'g'ri kirishni rad etadigan, izchil xatolar bilan javob beradigan, katta hajmni boshqaradigan va o'zgarganda eski mijozlarni buzmaydigan tizim; shu kursda bularning barchasini BITTA Bookstore API'sida, bosqichma-bosqich quramiz.

NEXT UP

Resource Modeling & URL Design