REST API ma'lumotnomasi
Asosiy konfiguratsiya
Asosiy URL: {site_url}/wp-json/wu/v2/
Autentifikatsiya: API Key va Secret (HTTP Basic Auth yoki URL parametrlari)
Autentifikatsiya
API ni yoqish
// Enable API in Ultimate Multisite settings or programmatically
wu_save_setting('enable_api', true);
API hisob ma’lumotlarini olish
$api_key = wu_get_setting('api_key');
$api_secret = wu_get_setting('api_secret');
Autentifikatsiya usullari
HTTP Basic Auth (tavsiya etiladi):
curl -u "api_key:api_secret" https://yoursite.com/wp-json/wu/v2/customers
URL parametrlari:
curl "https://yoursite.com/wp-json/wu/v2/customers?api_key=your_key&api_secret=your_secret"
Asosiy endpointlar
1. Mijozlar API
Asosiy marshrut: /customers
Barcha mijozlarni olish
GET /wu/v2/customers
Bitta mijozni olish
GET /wu/v2/customers/{id}
Mijoz yaratish
POST /wu/v2/customers
Content-Type: application/json
{
"user_id": 123,
"email_verification": "verified",
"type": "customer",
"has_trialed": false,
"vip": false
}
Mijozni yangilash
PUT /wu/v2/customers/{id}
Content-Type: application/json
{
"vip": true,
"extra_information": "VIP customer notes"
}
Mijozni o‘chirish
DELETE /wu/v2/customers/{id}
2. Saytlar API
Asosiy marshrut: /sites
Sayt yaratish
POST /wu/v2/sites
Content-Type: application/json
{
"customer_id": 5,
"membership_id": 10,
"domain": "example.com",
"path": "/",
"title": "My New Site",
"template_id": 1,
"type": "customer_owned"
}
3. A’zoliklar API
Asosiy marshrut: /memberships
A’zolik yaratish
POST /wu/v2/memberships
Content-Type: application/json
{
"customer_id": 5,
"plan_id": 3,
"status": "active",
"gateway": "stripe",
"gateway_subscription_id": "sub_1234567890",
"auto_renew": true
}
4. Mahsulotlar API
Asosiy marshrut: /products
Barcha mahsulotlarni olish
GET /wu/v2/products
5. To‘lovlar API
Asosiy marshrut: /payments
To‘lov yaratish
POST /wu/v2/payments
Content-Type: application/json
{
"customer_id": 5,
"membership_id": 10,
"status": "completed",
"gateway": "stripe",
"gateway_payment_id": "pi_1234567890",
"total": 29.99,
"currency": "USD"
}
6. Domenlar API
Asosiy marshrut: /domains
Domenni ulash
POST /wu/v2/domains
Content-Type: application/json
{
"domain": "custom-domain.com",
"customer_id": 5,
"primary_domain": 1,
"stage": "domain-mapping"
}
Ro‘yxatdan o‘tish endpointi
/register endpointi to‘liq checkout/ro‘yxatdan o‘tish oqimini taqdim etadi:
POST /wu/v2/register
Content-Type: application/json
{
"customer": {
"username": "newuser",
"password": "securepass123",
"email": "[email protected]"
},
"products": ["basic-plan"],
"duration": 1,
"duration_unit": "month",
"auto_renew": true,
"site": {
"site_url": "mynewsite",
"site_title": "My New Site",
"template_id": 1
},
"payment": {
"status": "completed"
},
"membership": {
"status": "active"
}
}
Javob:
{
"customer": { ... },
"membership": { ... },
"payment": { ... },
"site": { "id": 123 }
}
Suveren tenant endpointlari
Ultimate Multisite: Multi-Tenancy 1.2.0 izolyatsiyalangan tenantlarni ta’minlaydigan, tekshiradigan yoki tasdiqlaydigan integratsiyalar uchun suveren tenant REST qamrovini qo‘shadi.
Aniq so‘rov yuklamasi yoqilgan host imkoniyatiga bog‘liq, lekin integratsiyalar quyidagi endpoint guruhlarini kutishi kerak:
POST /wu/v2/tenants/{site_id}/bootstrap
GET /wu/v2/tenants/{site_id}/migration-status
POST /wu/v2/tenants/{site_id}/verify
DELETE /wu/v2/tenants/{site_id}
Tenant reyestri, ma’lumotlar bazasi, fayl tizimi va marshrutlash holatini tayyorlash uchun bootstrap endpointidan foydalaning. Ishlab chiqarish trafigini almashtirishdan oldin migratsiya holati va tasdiqlash endpointlaridan foydalaning. Ma’lumotlar bazasi hisob ma’lumotlari addon tozalash oqimi orqali olib tashlanishi uchun suveren yakuniy o‘chirishda o‘chirish endpointidan foydalaning.
Odatdagi migratsiya holati javoblari quyidagilarni o‘z ichiga oladi:
{
"site_id": 123,
"isolation_model": "sovereign",
"database_host": "localhost",
"verification": {
"no_legacy": "passed",
"sovereign_push": "passed",
"tenant_users": "passed"
},
"ready": true
}
ready: false ni ishga tushirishdan oldingi to‘siq sifatida qabul qiling. Tasdiqlash tafsilotlarini tekshiring, ma’lumotlar bazasi host bog‘lanishi, navbat, foydalanuvchi ta’minoti yoki marshrutlash muammosini tuzating, so‘ng tasdiqlashni qayta urinib ko‘ring.
Xato javoblari
{
"code": "wu_rest_invalid_parameter",
"message": "Invalid parameter value",
"data": {
"status": 400,
"params": {
"email": "Invalid email format"
}
}
}
Sahifalash va filtrlash
So‘rov parametrlari:
GET /wu/v2/customers?per_page=20&page=2&search=john&status=active
Umumiy parametrlar:
per_page- Har bir sahifadagi elementlar (standart: 20, maksimal: 100)page- Sahifa raqamisearch- Qidiruv atamasiorderby- Saralash maydoniorder- Saralash yo‘nalishi (asc/desc)status- Holat bo‘yicha filtrlashdate_created- Sana oralig‘i bo‘yicha filtrlash