REST API v1

API Hujjatlar

Barcha javoblar bir xil formatda: {"ok":true,"data":...} yoki {"ok":false,"error":{"code":"...","message":"..."}}. Autentifikatsiya sessiya cookie'si (alp.sid) orqali.

Ochiq endpointlar

MetodYo'lTavsif
GET/api/v1/healthHolat tekshiruvi
GET/api/v1/levels7 daraja (A0–C2)
GET/api/v1/coursesNashr qilingan kurslar
GET/api/v1/alphabet28 harf + 4 shakl
GET/api/v1/grammarGrammatika mavzulari ro'yxati
GET/api/v1/grammar/:slugBitta mavzu (to'liq)
GET/api/v1/dictionary?q=kitob&level=A1&limit=20Lug'at qidiruvi (arab/o'zbek/transliteratsiya/ildiz)
GET/api/v1/plansFaol obuna rejalari

Autentifikatsiya talab qiladigan endpointlar

Avval /login orqali kiring — sessiya cookie'si (alp.sid) avtomatik yuboriladi. Cookie'siz so'rovlar 401 qaytaradi.

MetodYo'lTavsif
GET/api/v1/meJoriy foydalanuvchi + reja + progress
GET/api/v1/progressTugatilgan darslar va foiz
GET/api/v1/vocabulary/favoritesSaqlangan so'zlar
GET/api/v1/examsImtihonlar ro'yxati
GET/api/v1/exam-resultsMening natijalarim
GET/api/v1/notificationsBildirishnomalar (oxirgi 50)
GET/api/v1/subscriptionJoriy reja va AI limiti

Misollar

Lug'atdan qidirish:

curl -s https://lisan.arabtilim.uz/api/v1/dictionary?q=kitob
{"ok":true,"data":[{"id":1,"arabic":"كِتَاب","transliteration":"kitāb","uzbek":"kitob","english":"book","root":"ك ت ب","part_of_speech":"ism","plural":"كُتُب","level_code":"A1"}]}

Sessiya bilan (cookie saqlanadi):

curl -s -c cookies.txt -b cookies.txt \
  -X POST https://lisan.arabtilim.uz/login \
  -d "[email protected]&password=parolingiz"

curl -s -b cookies.txt https://lisan.arabtilim.uz/api/v1/me

JavaScript (fetch):

const r = await fetch('/api/v1/courses', { credentials: 'same-origin' });
const { ok, data } = await r.json();
console.log(data);

Xato formati

{"ok":false,"error":{"code":"UNAUTHORIZED","message":"Kirish talab qilinadi"}}

/api/v2 hozircha mavjud emas — kelajakdagi kengaytmalar uchun ajratilgan. v1 barqaror va orqaga mos.