Tarkibga o'tish

API — Umumiy ma'lumot

dStream API mobil ilovalar va tashqi integratsiyalar uchun mo'ljallangan.

Asosiy qoidalar

  • Barcha javoblar JSON formatida
  • Autentifikatsiya talab qilinadigan so'rovlarda JWT token ishlatiladi
  • Xatoliklar inson o'qiy oladigan xabar bilan qaytariladi

Javob formati

Muvaffaqiyatli:

{
  "ok": true,
  "data": { ... }
}

Xatolik:

{
  "ok": false,
  "error": "Xatolik tavsifi"
}

HTTP status kodlari

Kod Ma'nosi
200 Muvaffaqiyatli
400 Noto'g'ri so'rov (parametrlar xato yoki yetishmaydi)
401 Autentifikatsiya talab qilinadi
403 Ruxsat yo'q
404 Resurs topilmadi
429 Juda ko'p so'rov yuborildi — biroz kuting
500 Server xatoligi

So'rovlar limiti (Rate Limiting)

Tizim so'rovlar sonini cheklaydi. Limit oshganda 429 status va Retry-After headeri qaytariladi:

{
  "ok": false,
  "error": "Juda ko'p urinish. 30 soniyadan so'ng qayta urinib ko'ring.",
  "retry_after": 30
}

Turli endpointlar uchun turli limitlar mavjud. Mobil ilovalar uchun tavsiya:

  • Eksponensial retry strategiyasini qo'llang
  • Retry-After qiymatini hurmat qiling
  • Foydalanuvchi harakatsiz bo'lganda so'rov yubormang

Autentifikatsiya

Himoyalangan endpointlar uchun Authorization headerida JWT token yuboriladi:

Authorization: Bearer <token>

Token login jarayonida beriladi va muddati tugagach yangilanishi kerak.

Tokenni xavfsiz saqlang

Tokenni faqat qurilmangizdagi xavfsiz xotiraga saqlang. Log fayllar, kod repozitoriyalari yoki public joylarga qo'ymang.

Rasm yuklash

Rasm yuklash endpointlari multipart/form-data qabul qiladi.

Qo'llab-quvvatlanadigan formatlar: JPEG, PNG, WebP, GIF, AVIF, BMP, TIFF

Maksimal o'lcham: 5 MB (profil rasmi va kontent rasmlari)

Fayl yuklanganda server:

  1. Format va MIME turini tekshiradi
  2. Rasm sarlavhasini tahlil qiladi
  3. Maksimal piksel sonini tekshiradi
  4. Faylni xavfsiz nom bilan saqlaydi

Eng yaxshi amaliyotlar

  • Timeout — so'rovlarga 30 soniyalik timeout qo'ying
  • Retry — tarmoq xatolarida bir necha marta qayta urinib ko'ring
  • Token yangilash — token muddati tugashidan oldin yangilang
  • Xatoliklarni ushlang — barcha API xatoliklarini foydalanuvchiga tushunarli tarzda ko'rsating

Bog'lanish

API integratsiyasi bo'yicha savollar uchun: support@dstream.uz