Tài liệu tham khảo REST API
Cấu hình cơ sở
URL cơ sở: {site_url}/wp-json/wu/v2/
Xác thực: Khóa API & Secret (HTTP Basic Auth hoặc tham số URL)
Xác thực
Bật API
// Enable API in Ultimate Multisite settings or programmatically
wu_save_setting('enable_api', true);
Lấy thông tin xác thực API
$api_key = wu_get_setting('api_key');
$api_secret = wu_get_setting('api_secret');
Phương thức xác thực
HTTP Basic Auth (Được khuyến nghị):
curl -u "api_key:api_secret" https://yoursite.com/wp-json/wu/v2/customers
Tham số URL:
curl "https://yoursite.com/wp-json/wu/v2/customers?api_key=your_key&api_secret=your_secret"
Các điểm cuối cốt lõi
1. API khách hàng
Tuyến cơ sở: /customers
Lấy tất cả khách hàng
GET /wu/v2/customers
Lấy một khách hàng
GET /wu/v2/customers/{id}
Tạo khách hàng
POST /wu/v2/customers
Content-Type: application/json
{
"user_id": 123,
"email_verification": "verified",
"type": "customer",
"has_trialed": false,
"vip": false
}
Cập nhật khách hàng
PUT /wu/v2/customers/{id}
Content-Type: application/json
{
"vip": true,
"extra_information": "VIP customer notes"
}
Xóa khách hàng
DELETE /wu/v2/customers/{id}
2. API trang
Tuyến cơ sở: /sites
Tạo trang
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 tư cách thành viên
Tuyến cơ sở: /memberships
Tạo tư cách thành viên
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 sản phẩm
Tuyến cơ sở: /products
Lấy tất cả sản phẩm
GET /wu/v2/products
5. API thanh toán
Tuyến cơ sở: /payments
Tạo thanh toán
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 tên miền
Tuyến cơ sở: /domains
Ánh xạ tên miền
POST /wu/v2/domains
Content-Type: application/json
{
"domain": "custom-domain.com",
"customer_id": 5,
"primary_domain": 1,
"stage": "domain-mapping"
}
Điểm cuối đăng ký
Điểm cuối /register cung cấp một luồng thanh toán/đăng ký hoàn chỉnh:
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"
}
}
Phản hồi:
{
"customer": { ... },
"membership": { ... },
"payment": { ... },
"site": { "id": 123 }
}
Điểm cuối đối tượng thuê độc lập
Ultimate Multisite: Multi-Tenancy 1.2.0 bổ sung phạm vi REST cho đối tượng thuê độc lập dành cho các tích hợp cấp phát, kiểm tra hoặc xác minh các đối tượng thuê biệt lập.
Payload yêu cầu chính xác phụ thuộc vào năng lực máy chủ đã bật, nhưng các tích hợp nên dự kiến các nhóm điểm cuối này:
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}
Sử dụng điểm cuối bootstrap để chuẩn bị sổ đăng ký đối tượng thuê, cơ sở dữ liệu, hệ thống tệp và trạng thái định tuyến. Sử dụng các điểm cuối trạng thái di chuyển và xác minh trước khi chuyển đổi lưu lượng sản xuất. Sử dụng điểm cuối xóa để tháo dỡ đối tượng thuê độc lập, nhờ đó thông tin xác thực cơ sở dữ liệu được xóa thông qua luồng dọn dẹp addon.
Các phản hồi trạng thái di chuyển điển hình bao gồm:
{
"site_id": 123,
"isolation_model": "sovereign",
"database_host": "localhost",
"verification": {
"no_legacy": "passed",
"sovereign_push": "passed",
"tenant_users": "passed"
},
"ready": true
}
Xem ready: false là một yếu tố chặn trước khi ra mắt. Kiểm tra chi tiết xác minh, khắc phục ràng buộc máy chủ cơ sở dữ liệu, hàng đợi, cấp phát người dùng hoặc vấn đề định tuyến, rồi thử lại xác minh.
Phản hồi lỗi
{
"code": "wu_rest_invalid_parameter",
"message": "Invalid parameter value",
"data": {
"status": 400,
"params": {
"email": "Invalid email format"
}
}
}
Phân trang và lọc
Tham số truy vấn:
GET /wu/v2/customers?per_page=20&page=2&search=john&status=active
Các tham số phổ biến:
per_page- Mục trên mỗi trang (mặc định: 20, tối đa: 100)page- Số trangsearch- Cụm từ tìm kiếmorderby- Trường sắp xếporder- Hướng sắp xếp (asc/desc)status- Lọc theo trạng tháidate_created- Lọc theo khoảng ngày