Αναφορά REST API
Βασική διαμόρφωση
Βασικό URL: {site_url}/wp-json/wu/v2/
Έλεγχος ταυτότητας: API Key & Secret (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 παρέχει μια πλήρη ροή checkout/εγγραφής:
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 για κυρίαρχους μισθωτές για ενσωματώσεις που παρέχουν, επιθεωρούν ή επαληθεύουν απομονωμένους μισθωτές.
Το ακριβές ωφέλιμο φορτίο αιτήματος εξαρτάται από την ενεργοποιημένη δυνατότητα του host, αλλά οι ενσωματώσεις θα πρέπει να αναμένουν αυτές τις ομάδες τελικών σημείων:
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 ως εμπόδιο πριν από την κυκλοφορία. Ελέγξτε τις λεπτομέρειες επαλήθευσης, διορθώστε τη σύνδεση host της βάσης δεδομένων, την ουρά, την παροχή χρηστών ή το ζήτημα δρομολόγησης και, στη συνέχεια, δοκιμάστε ξανά την επαλήθευση.
Αποκρίσεις σφαλμάτων
{
"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- Φιλτράρισμα κατά εύρος ημερομηνιών