Kirish
Utel frontend va backend asosida yaratilganligi bois barcha ma'lumotlar uchun api endpointlar mavjud.
Domain & BaseUrl
Har bir ro'yhatdan o'tgan mijoz uchun alohida resource ajratiladi. Bular:
- Server (vps)
- Domen
- Ip manzil
- Storage
Alohida resource ajratilishidan maqsad mijozlar bir-biridan izolatsiyalanadi va bir biriga muammo tug'dirmaydi.
Domen quyidagi strukturaga ega bo'ladi:
Domen strukturasi
[Server turi][Tartib raqami].utel.uz
*Istisnolar mavjud
Bu yerda:
- Server turi - Utel qaysi serverga o'rnatilishiga qarab farqlanadi. Ular quyidagicha bo'lishi mumkin:
- cc - Hostmaster datamarkazidan ajratilgan virtual server (vps). Mijoz ro'yhatdan o'tganida avtomatik beriladi.
- utc - Uztelecom datamarkazidan ajratilgan virutual server (vps). Bunday serverlarni odatda mijozning o'zi sotib oladi va mijoz serveriga utel adminlari tomonidan utel o'rnatib beriladi.
- Tartib raqami - Utel tomonidan berilgan tartib raqam. Masalan: 121, 156, 201 ...
Server turi va tartib raqami birgalikda subdomen`ni tashkil qiladi.
Domenga misol sifatida: cc999.utel.uz, utc999.utel.uz kabilar.
Istisnolar
Ba'zi vaziyatlarda domen sifatida [tashkilot nomi].utel.uz ham qo'llanilishi mumkin.
Shunday qilib api uchun BASE URL quyidagicha bo'ladi:
Base url
https://api.[subdomain].utel.uz/api/v1
Masalan:
- cc999.utel.uz uchun api base url:
https://api.cc999.utel.uz/api/v1 - utc999.utel.uz uchun api base url:
https://api.utc999.utel.uz/api/v1
API lardan foydalanish
Ogohlantirish
Yo'riqnomada barcha endpointlar nisbiy beriladi, shuning uchun berilgan endpointlar oldidan base url qo'shib ishlatishingiz talab qilinadi.
API endpointlarni ishlatib ko'rish uchun quyidagi dastur yoki app larni ishlatishingizni tavsiya qilamiz
Xatoliklar
Quyidagi kutilgan xatoliklar bo'lishi mumkin:
401 Unauthorized
Xatolik sababi: request headerga Bearer Authorization qo'shilmagan. Batafsil o'qing: Auth
422 Unprocessable Content
Asosan validation error ushbu xatolik kodi bilan birga qaytadi. Xatolik sababi: request body'da yuborilgan ma'lumotlar validation`ga mos emas.
Misol uchun quyidagi request body talab qilinsa:
{
"field1": "value1",
"field2": "value2",
// ...
}Quyidagicha xatolik qaytishi mumkin:
{
"message": "Asosiy xatolik matni",
"errors": {
"field1": [
"field1 ga tegishli xatolik 1.",
"field1 ga tegishli xatolik 2.",
// ...
],
"field2": [
"field2 ga tegishli xatolik 1.",
"field2 ga tegishli xatolik 2.",
// ...
]
}
}Developer notes:
errorsobyektidagi kalitlar form field (request body'da keltirilgan) nomlari bilan mos- Har bir maydon (field) uchun bir nechta xatolik qaytarishi mumkin
- Frontend tomonida
errors[field][0]ko‘rinishida ilk xatolikni ishlatish tavsiya etiladi
500 Internal Server Error
Nazarda tutilmagan xatolik. Odatda server tomonida yoki 3-tomon (Boshqa integratsiyalar yoki xizmat/serivelar)da biror bir kutilmagan xatolik bo'lgandagina ushbu xatolik chiqishi mumkin.