REST API анықтамалығы
Негізгі конфигурация
Негізгі URL: {site_url}/wp-json/wu/v2/
Аутентификация: API кілті және құпиясы (HTTP Basic Auth немесе URL параметрлері)
Аутентификация
API қосу
// Enable API in Ultimate Multisite settings or programmatically
wu_save_setting('enable_api', true);
API деректерін алу
$api_key = wu_get_setting('api_key');
$api_secret = wu_get_setting('api_secret');
Аутентификация әдістері
HTTP Basic Auth (ұсынылады):
curl -u "api_key:api_secret" https://yoursite.com/wp-json/wu/v2/customers
URL параметрлері:
curl "https://yoursite.com/wp-json/wu/v2/customers?api_key=your_key&api_secret=your_secret"
Негізгі соңғы нүктелер
1. Клиенттер API
Негізгі маршрут: /customers
Барлық клиенттерді алу
GET /wu/v2/customers
Бір клиентті алу
GET /wu/v2/customers/{id}
Клиент жасау
POST /wu/v2/customers
Content-Type: application/json
{
"user_id": 123,
"email_verification": "verified",
"type": "customer",
"has_trialed": false,
"vip": false
}
Клиентті жаңарту
PUT /wu/v2/customers/{id}
Content-Type: application/json
{
"vip": true,
"extra_information": "VIP customer notes"
}
Клиентті жою
DELETE /wu/v2/customers/{id}
2. Сайттар API
Негізгі маршрут: /sites
Сайт жасау
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. Мүшеліктер API
Негізгі маршрут: /memberships
Мүшелік жасау
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. Өнімдер API
Негізгі маршрут: /products
Барлық өнімдерді алу
GET /wu/v2/products
5. Төлемдер API
Негізгі маршрут: /payments
Төлем жасау
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. Домендер API
Негізгі маршрут: /domains
Доменді байланыстыру
POST /wu/v2/domains
Content-Type: application/json
{
"domain": "custom-domain.com",
"customer_id": 5,
"primary_domain": 1,
"stage": "domain-mapping"
}
Тіркелу соңғы нүктесі
/register соңғы нүктесі толық төлем рәсімдеу/тіркелу ағынын ұсынады:
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"
}
}
Жауап:
{
"customer": { ... },
"membership": { ... },
"payment": { ... },
"site": { "id": 123 }
}
Егемен тенант соңғы нүктелері
Ultimate Multisite: Multi-Tenancy 1.2.0 оқшауланған тенанттарды қамтамасыз ететін, тексеретін немесе растайтын интеграциялар үшін егемен тенанттарға арналған REST қамтуын қосады.
Нақты сұрау жүктемесі қосылған хост мүмкіндігіне байланысты, бірақ интеграциялар мына соңғы нүкте топтарын күтуі керек:
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}
Тенант тізілімін, дерекқорды, файлдық жүйені және маршруттау күйін дайындау үшін bootstrap соңғы нүктесін пайдаланыңыз. Өндірістік трафикті ауыстырмас бұрын көшіру күйі мен растау соңғы нүктелерін пайдаланыңыз. Егемен бөлшектеу үшін жою соңғы нүктесін пайдаланыңыз, сонда дерекқор деректері addon тазалау ағыны арқылы жойылады.
Әдеттегі көшіру күйі жауаптары мыналарды қамтиды:
{
"site_id": 123,
"isolation_model": "sovereign",
"database_host": "localhost",
"verification": {
"no_legacy": "passed",
"sovereign_push": "passed",
"tenant_users": "passed"
},
"ready": true
}
ready: false мәнін іске қосу алдындағы бөгет ретінде қарастырыңыз. Растау мәліметтерін тексеріңіз, дерекқор хостын байланыстыру, кезек, пайдаланушыны қамтамасыз ету немесе маршруттау мәселесін түзетіңіз, содан кейін растауды қайталаңыз.
Қате жауаптары
{
"code": "wu_rest_invalid_parameter",
"message": "Invalid parameter value",
"data": {
"status": 400,
"params": {
"email": "Invalid email format"
}
}
}
Беттерге бөлу және сүзу
Сұрау параметрлері:
GET /wu/v2/customers?per_page=20&page=2&search=john&status=active
Жалпы параметрлер:
per_page- Бір беттегі элементтер (әдепкі: 20, ең көбі: 100)page- Бет нөміріsearch- Іздеу сөзіorderby- Сұрыптау өрісіorder- Сұрыптау бағыты (asc/desc)status- Күй бойынша сүзуdate_created- Күн ауқымы бойынша сүзу