Kamera integratsiyasi API
Xonada hozir qaysi dars ketyapti va unda nechta odam bo'lishi kerakligini beradi. Kamera sanagan sonni qabul qiladi.
Vaqtlar Toshkent vaqtida (UTC+05:00), ISO 8601 formatida. Xona nomlari dars jadvalidagidek, masalan 10-103-54. Ro'yxatini GET /rooms beradi.
Base URL https://api.abdunodir.uz/partner/v1 Format JSON (UTF-8) Protokol faqat HTTPS Spec openapi.yaml
Avtorizatsiya
Har so'rovda kalit Authorization: Bearer sarlavhasida yuboriladi. Kalitni biz beramiz. Kalit sizning server IP manzilingizga bog'lanadi.
Chegara: kalit uchun daqiqasiga 60 ta so'rov. Chegaradan oshsa 429 qaytadi, Retry-After soniya kuting.
Sinab ko'rish uchun kalit
Bu yerga kiritilgan kalit faqat shu brauzer oynasida turadi va pastdagi "Sinab ko'rish" panellarida ishlatiladi.
Authorization: Bearer tsue_pk_xxxxxxxxxxxx_xxxxxxxx… # har javobda X-RateLimit-Remaining: 57
Xonalar ro'yxati
Jadvaldagi barcha xonalar. capacity xona nomidan olinadi (oxirgi -54 qismi), nomda bo'lmasa null.
Parametrlar
Parametr yo'q.
{
"data": [
{ "name": "10-103-54", "building": "10-bino", "capacity": 54 },
{ "name": "1/111", "building": "1-bino", "capacity": null }
]
}Xonadagi joriy dars
Berilgan xonada hozir (yoki at vaqtida) ketayotgan dars.
Parametrlar
GET /rooms dagidek.Javob
complete: son aniq. partial: bir qism guruhlarniki noma'lum. unavailable: son yo'q.Xonada dars bo'lmasa lesson: null qaytadi (kod 200).
{
"room": "10-103-54",
"at": "2026-11-03T11:15:00+05:00",
"lesson": {
"room": "10-103-54",
"starts_at": "11:00",
"ends_at": "12:20",
"teacher": "Rustamov Akmal",
"teachers_count": 1,
"groups_count": 2,
"students_count": 42,
"students_count_status": "complete",
"expected_people": 43,
"source": "hemis"
}
}Kunlik jadval
Bir kundagi barcha darslar. Kun boshida bir marta olib, keshlab qo'yish uchun qulay. Ro'yxat starts_at, keyin room bo'yicha tartiblangan.
Parametrlar
{
"date": "2026-11-03",
"data": [
{
"room": "1/111",
"starts_at": "08:00",
"ends_at": "09:20",
"teacher": "Karimova Nodira",
"teachers_count": 1,
"groups_count": 1,
"students_count": 27,
"students_count_status": "complete",
"expected_people": 28,
"source": "edupage"
}
]
}Kamera o'lchovlarini yuborish
Bitta so'rovda 100 tagacha o'lchov. Har o'lchovga alohida natija qaytadi, tartibi so'rovdagidek.
Tana (JSON) — readings[]
GET /rooms dagidek.alert: true — davomatdagi talabalar soni kamera ko'rganidan sezilarli ko'p (kamida 2 kishi yoki 10%). Bunda xonadagi doskada o'qituvchiga ogohlantirish chiqadi.
{
"data": [
{ "room": "10-103-54", "accepted": true, "expected_people": 43, "checked_in": 35, "alert": false },
{ "room": "B-404", "accepted": false, "error": "room_not_found" }
]
}Xatolar
Kodda code maydoniga tayaning, message o'zgarishi mumkin.
| HTTP | code | Nima qilish kerak |
|---|---|---|
| 401 | unauthorized | Kalit yo'q, noto'g'ri yoki formati buzilgan |
| 401 | key_revoked | Kalit bekor qilingan, yangisini so'rang |
| 403 | ip_not_allowed | So'rov ruxsat berilmagan IP manzildan keldi |
| 404 | room_not_found | Xona nomini GET /rooms bilan tekshiring |
| 422 | validation_failed | Parametrlar noto'g'ri, sababi message da yozilgan |
| 429 | rate_limited | Retry-After da ko'rsatilgan soniyani kuting |
| 503 | schedule_unavailable | Jadval manbasi vaqtincha ishlamayapti, Retry-After dan keyin qayta urining |
| 500 | — | Xato bizning tomonda. So'rov vaqti va xona nomi bilan xabar bering |
{
"error": {
"code": "room_not_found",
"message": "Bunday xona topilmadi. Ro'yxat: GET /rooms"
}
}