Kitoblar kutubxonasi API
UMFT AmaliyotLoyiha nomi: "Kitoblar Kutubxonasi API"
Ma'lumoti:
Ushbu loyiha kitoblar kutubxonasini boshqarish uchun backend API yaratishni o'z ichiga oladi. API kitoblar, mualliflar va kitob kategoriyalari haqidagi ma'lumotlarni saqlash va boshqarishga imkon beradi.
Texnologiyalar:
- Node.js: Backendni ishlatish uchun.
- Express.js: RESTful API yaratish uchun.
- MongoDB: Ma'lumotlar bazasi sifatida.
- Mongoose: MongoDB bilan ishlash uchun ORM.
Topshiriqlar:
Loyiha muhitini sozlash:
- Node.js va Express.js yordamida yangi loyiha yaratish.
- MongoDB bilan ulanishni sozlash (local yoki Atlas yordamida).
- dotenv paketini o'rnatib, muhit o'zgaruvchilarini sozlash.
Ma'lumotlar bazasi modeli:
- Uchta asosiy model yaratish: Kitob (Book), Muallif (Author), va Kategoriya (Category).
- Har bir model uchun quyidagi maydonlar bo'lishi kerak:Kitob (Book):title - Kitob nomi (string, required).
- author - Muallif ID (MongoDB ObjectID, required, reference to Author).
- category - Kategoriya ID (MongoDB ObjectID, required, reference to Category).
- publishedYear - Noshir yil (number).
- summary - Kitobning qisqa tavsifi (string).
Muallif (Author)
- name - Muallif nomi (string, required).
- biography - Biografiya (string).
Kategoriya (Category)
- name - Kategoriya nomi (string, required).
- description - Tavsif (string).
RESTful API yaratish:
CRUD operatsiyalarini bajarish uchun quyidagi endpointlarni yaratish:
Kitoblar uchun:
- POST /books - Yangi kitob qo'shish.
- GET /books - Barcha kitoblarni ro'yxatini olish.
- GET /books/:id - Ma'lum bir kitobni olish.
- PUT /books/:id - Kitobni yangilash.
- DELETE /books/:id - Kitobni o'chirish.
Mualliflar uchun:
- POST /authors - Yangi muallif qo'shish.
- GET /authors - Barcha mualliflarni ro'yxatini olish.
- GET /authors/:id - Ma'lum bir muallifni olish.
- PUT /authors/:id - Muallifni yangilash.
- DELETE /authors/:id - Muallifni o'chirish.
Kategoriyalar uchun:
- POST /categories - Yangi kategoriya qo'shish.
- GET /categories - Barcha kategoriyalarni ro'yxatini olish.
- GET /categories/:id - Ma'lum bir kategoriyani olish.
- PUT /categories/:id - Kategoriyani yangilash.
- DELETE /categories/:id - Kategoriyani o'chirish.
Ma'lumotlarni validatsiya qilish:
- Har bir POST va PUT so'rovlarida kiritilgan ma'lumotlarni validatsiya qilish uchun Mongoose schema-larida kerakli validatsiyalarni qo'shish.
- Xatoliklar uchun mos HTTP kodlar va xabarlarni qaytarish.
- Filtrlash va qidiruv funksiyalari:
- Kitoblarni nomi, muallifi yoki kategoriyasi bo'yicha qidirish imkoniyatini qo'shish.
Loyihani ishga tushirish:
- Loyiha uchun kerakli npm skriptlarini yaratish (start, dev).
- Loyiha tugatilgandan so'ng, uni lokal muhitda test qilib ko'ring.