Bron qilish uchun API
Yii Basic template asosida yaratilgan RESTful API bo'lib, turli veb-saytlar uchun bron qilishlarni boshqaradi. Bu API ro'yxatdan o'tgan veb-saytlarga bron qilish bo'yicha CRUD operatsiyalarini bajarishga va vaqt oraliqlarining to'qnashuvini oldini olishga imkon beradi.
Imkoniyatlar
- Veb-sayt ro'yxatdan o'tkazish va autentifikatsiya
- Bron qilishni boshqarish (CRUD operatsiyalari)
- Avtomatik vaqt oralig'i tekshiruvi
- Veb-saytning bron qilish statistikasi
- Sahifalashni qo'llab-quvvatlashi
- RESTful arxitektura asosida
Autentifikatsiya
Barcha API endpointlari Bearer token autentifikatsiyasini talab qiladi:
- Ro'yxatdan o'tish endpointi orqali veb-saytingizni ro'yxatdan o'tkazing
- Olingan tokeni
Authorization: Bearer <token>sarlavhasi orqali so'rovlarga qo'shing
API Endpointlar
Veb-saytni ro'yxatdan o'tkazish
POST https://bookings.bekhruzbek.uz/v1/websites/register{
"name": "Veb-saytingiz nomi",
"email": "contact@yourwebsite.com"
}
Bron qilish
POST https://bookings.bekhruzbek.uz/v1/bookings{
"service_name": "Premium Xizmat",
"customer_name": "Javlon Aliyev",
"customer_contact": "998908887766",
"booking_date": "2024-10-30",
"start_time": "12:00",
"end_time": "12:30",
"duration_minutes": "30"
}
Veb-sayt statistikasi
GET https://bookings.bekhruzbek.uz/v1/bookings/statisticsJavob formati:
{
"status": "success",
"data": {
"totalBookings": {
"count": 3,
"percentage": 100
},
"mostSellingTime": {
"hour": 14,
"count": 2,
"percentage": 66.67
},
"mostSellingDay": {
"day": "Chorshanba",
"count": 1,
"percentage": 33.33
},
"mostSellingDuration": {
"durationMinutes": 30,
"count": 3,
"percentage": 100
},
"mostSellingService": {
"serviceName": "Premium Xizmat",
"count": 2,
"percentage": 66.67
},
"returnClients": {
"count": 1,
"details": [
{
"customerContact": "998908887766",
"customerName": "Javlon Aliyev",
"bookings": 3
}
]
}
}
}
Boshqa Endpointlar
| Endpoint | Metod | Tavsif |
|---|---|---|
/v1/bookings/{id} |
GET | Bitta bron qilishni olish |
/v1/bookings/{id} |
PUT | Bron qilishni yangilash |
/v1/bookings/{id} |
DELETE | Bron qilishni o'chirish |
Biznes Qoidalar
-
Vaqt oralig'i tekshiruvi:
- Har bir vaqt oralig'i bir kunda bir veb-sayt uchun faqat bir marta bron qilinishi mumkin
- Bir xil veb-sayt uchun bir kunda ustma-ust tushadigan bron qilishlarga ruxsat berilmaydi
-
Autentifikatsiya:
- Veb-sayt ro'yxatdan o'tkazishdan tashqari barcha endpointlar Bearer token talab qiladi
- Veb-sayt ID si autentifikatsiya tokeni asosida avtomatik tayinlanadi
O'rnatish
-
Yangi Yii Basic loyiha yarating:
composer create-project --prefer-dist yiisoft/yii2-app-basic booking-api
-
Repozitoriyani remote sifatida qo'shing va pull qiling:
git remote add origin https://github.com/bekhruzcodes/bookings.git git pull origin main
-
Quyidagi fayllarni muhitingizga moslab sozlang:
config/db.phpconfig/web.phpconfig/console.phpconfig/params.php
-
Migratsiyalarni ishga tushiring:
php yii migrate