{"openapi":"3.0.3","info":{"title":"elib \u2014 LMS adabiyot API","version":"1.0.0","description":"Universitet LMS'i fanlar uchun adabiyotlarni elib katalogidan oladi. Kitoblar Koha'dan jonli olinadi; ID: Koha biblionumber."},"servers":[{"url":"https:\/\/elib.npuu.uz\/api\/lms\/v1"}],"security":[{"bearer":[]}],"paths":{"\/books":{"get":{"summary":"Katalogdan qidirish yoki ID'lar bo'yicha olish","description":"q berilsa eng mos kitoblar birinchi keladi, berilmasa katalogga oxirgi qo'shilganlar. Koha vaqtincha javob bermasa 503 qaytadi.","parameters":[{"name":"q","in":"query","schema":{"type":"string","maxLength":200},"description":"Qidiruv matni (nomi, muallif, mavzu va boshqa maydonlar bo'yicha)"},{"name":"author","in":"query","schema":{"type":"string","maxLength":200},"description":"Faqat muallif bo'yicha"},{"name":"type","in":"query","schema":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,10}$"},"description":"Material turi kodi (\/item-types), masalan KITOB"},{"name":"language","in":"query","schema":{"type":"string","pattern":"^[a-z]{3}$"},"description":"Til kodi (\/languages), masalan uzb"},{"name":"ids","in":"query","schema":{"type":"string","pattern":"^\\d+(,\\d+){0,49}$"},"description":"Vergul bilan 50 tagacha ID: fan adabiyotlari ro'yxati uchun. Berilsa boshqa parametrlar hisobga olinmaydi."},{"name":"page","in":"query","schema":{"type":"integer","minimum":1,"default":1}},{"name":"per_page","in":"query","schema":{"type":"integer","minimum":1,"maximum":50,"default":20}}],"responses":{"200":{"description":"Kitoblar ro'yxati","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#\/components\/schemas\/Book"}},"meta":{"type":"object","description":"Qidiruvda: page, per_page, total, total_pages. ids bilan: missing, ya'ni Koha'da yo'q yoki LMS uchun yashirilgan ID'lar."}}}}}},"422":{"description":"Parametr noto'g'ri"},"401":{"description":"API kaliti yo'q yoki yaroqsiz","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Bitta IP manzildan daqiqasiga 600 so'rovdan oshdi; Retry-After sarlavhasi necha soniyadan keyin qayta urinishni aytadi"},"503":{"description":"Koha vaqtincha javob bermayapti (error.code: unavailable). Saqlangan ro'yxatni o'zgartirmang, Retry-After soniyadan keyin qayta so'rang.","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}}}},"\/books\/{id}":{"get":{"summary":"Kitobning to'liq ma'lumoti","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"},"description":"Kitob ID (Koha biblionumber)"}],"responses":{"200":{"description":"Kitob","content":{"application\/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#\/components\/schemas\/BookDetail"}}}}}},"404":{"description":"Topilmadi yoki LMS uchun yashirilgan","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"401":{"description":"API kaliti yo'q yoki yaroqsiz","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Bitta IP manzildan daqiqasiga 600 so'rovdan oshdi; Retry-After sarlavhasi necha soniyadan keyin qayta urinishni aytadi"},"503":{"description":"Koha vaqtincha javob bermayapti (error.code: unavailable). Saqlangan ro'yxatni o'zgartirmang, Retry-After soniyadan keyin qayta so'rang.","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}}}},"\/item-types":{"get":{"summary":"Material turlari (Koha'dagi ro'yxat)","responses":{"200":{"description":"{\"data\": [{\"code\": \"KITOB\", \"name\": \"Kitob\"}, {\"code\": \"DISS\", \"name\": \"Dissertatsiya va avtoreferat\"}]}"},"401":{"description":"API kaliti yo'q yoki yaroqsiz","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Bitta IP manzildan daqiqasiga 600 so'rovdan oshdi; Retry-After sarlavhasi necha soniyadan keyin qayta urinishni aytadi"},"503":{"description":"Koha vaqtincha javob bermayapti (error.code: unavailable). Saqlangan ro'yxatni o'zgartirmang, Retry-After soniyadan keyin qayta so'rang.","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}}}},"\/languages":{"get":{"summary":"Tillar","responses":{"200":{"description":"{\"data\": [{\"code\": \"uzb\", \"name\": \"O'zbek\"}, {\"code\": \"rus\", \"name\": \"Rus\"}]}"},"401":{"description":"API kaliti yo'q yoki yaroqsiz","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"Bitta IP manzildan daqiqasiga 600 so'rovdan oshdi; Retry-After sarlavhasi necha soniyadan keyin qayta urinishni aytadi"}}}}},"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"elib admin panelida yaratilgan API kalit (elib_...)"}},"schemas":{"Book":{"type":"object","properties":{"id":{"type":"integer"},"title":{"type":"string"},"author":{"type":"string","nullable":true},"year":{"type":"integer","nullable":true},"isbn":{"type":"string","nullable":true},"item_types":{"type":"array","items":{"type":"string"}},"cover_url":{"type":"string","nullable":true,"description":"elib'dagi muqova rasmi, kichik o'lchamda (\/covers\/{id}\/thumb); muqova bo'lmasa null"},"copies":{"type":"object","description":"Bosma nusxalar: jami va hozir berish mumkin bo'lganlari","properties":{"total":{"type":"integer"},"available":{"type":"integer"}}},"ebook":{"type":"object","properties":{"available":{"type":"boolean","description":"PDF elib o'quvchisida ochiladi"},"paid":{"type":"boolean","description":"LMS orqali kirgan talaba bu kitob uchun to'laydimi"},"price":{"type":"integer","nullable":true,"description":"LMS a'zolari to'laydigan narx, so'm (bepul yoki hozir sotilmasa null)"},"access_days":{"type":"integer","nullable":true}}},"links":{"type":"object","properties":{"page":{"type":"string","description":"Kitobning elib sahifasi"},"read":{"type":"string","nullable":true,"description":"LMS orqali kirib, darhol onlayn o'qish (PDF bo'lsa)"}}}}},"BookDetail":{"allOf":[{"$ref":"#\/components\/schemas\/Book"},{"type":"object","properties":{"subtitle":{"type":"string","nullable":true},"contributors":{"type":"array","items":{"type":"string"}},"publisher":{"type":"string","nullable":true},"place":{"type":"string","nullable":true},"edition":{"type":"string","nullable":true},"series":{"type":"string","nullable":true},"pages":{"type":"string","nullable":true},"language":{"type":"string","nullable":true},"udc":{"type":"string","nullable":true},"subjects":{"type":"array","items":{"type":"string"}},"keywords":{"type":"array","items":{"type":"string"}},"description":{"type":"string","nullable":true}}}]},"Error":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}}