Référence de l’API REST
Configuration de base
URL de base : {site_url}/wp-json/wu/v2/
Authentification : clé API et secret (authentification HTTP Basic ou paramètres d’URL)
Authentification
Activer l’API
// Enable API in Ultimate Multisite settings or programmatically
wu_save_setting('enable_api', true);
Obtenir les identifiants API
$api_key = wu_get_setting('api_key');
$api_secret = wu_get_setting('api_secret');
Méthodes d’authentification
Authentification HTTP Basic (recommandée) :
curl -u "api_key:api_secret" https://yoursite.com/wp-json/wu/v2/customers
Paramètres d’URL :
curl "https://yoursite.com/wp-json/wu/v2/customers?api_key=your_key&api_secret=your_secret"
Points de terminaison principaux
1. API des clients
Route de base : /customers
Obtenir tous les clients
GET /wu/v2/customers
Obtenir un client unique
GET /wu/v2/customers/{id}
Créer un client
POST /wu/v2/customers
Content-Type: application/json
{
"user_id": 123,
"email_verification": "verified",
"type": "customer",
"has_trialed": false,
"vip": false
}
Mettre à jour un client
PUT /wu/v2/customers/{id}
Content-Type: application/json
{
"vip": true,
"extra_information": "VIP customer notes"
}
Supprimer un client
DELETE /wu/v2/customers/{id}
2. API des sites
Route de base : /sites
Créer un site
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 des adhésions
Route de base : /memberships
Créer une adhésion
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 des produits
Route de base : /products
Obtenir tous les produits
GET /wu/v2/products
5. API des paiements
Route de base : /payments
Créer un paiement
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 des domaines
Route de base : /domains
Mapper un domaine
POST /wu/v2/domains
Content-Type: application/json
{
"domain": "custom-domain.com",
"customer_id": 5,
"primary_domain": 1,
"stage": "domain-mapping"
}
Point de terminaison d’inscription
Le point de terminaison /register fournit un flux complet de paiement/d’inscription :
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"
}
}
Réponse :
{
"customer": { ... },
"membership": { ... },
"payment": { ... },
"site": { "id": 123 }
}
Points de terminaison des tenants souverains
Ultimate Multisite: Multi-Tenancy 1.2.0 ajoute une couverture REST des tenants souverains pour les intégrations qui provisionnent, inspectent ou vérifient des tenants isolés.
La charge utile exacte de la requête dépend de la capacité d’hôte activée, mais les intégrations doivent s’attendre à ces groupes de points de terminaison :
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}
Utilisez le point de terminaison bootstrap pour préparer le registre du tenant, la base de données, le système de fichiers et l’état du routage. Utilisez les points de terminaison d ’état de migration et de vérification avant de basculer le trafic de production. Utilisez le point de terminaison de suppression pour le démantèlement souverain afin que les identifiants de base de données soient supprimés via le flux de nettoyage de l’addon.
Les réponses typiques d’état de migration incluent :
{
"site_id": 123,
"isolation_model": "sovereign",
"database_host": "localhost",
"verification": {
"no_legacy": "passed",
"sovereign_push": "passed",
"tenant_users": "passed"
},
"ready": true
}
Traitez ready: false comme un blocage avant lancement. Vérifiez les détails de vérification, corrigez la liaison de l’hôte de base de données, la file d’attente, le provisionnement des utilisateurs ou le problème de routage, puis relancez la vérification.
Réponses d’erreur
{
"code": "wu_rest_invalid_parameter",
"message": "Invalid parameter value",
"data": {
"status": 400,
"params": {
"email": "Invalid email format"
}
}
}
Pagination et filtrage
Paramètres de requête :
GET /wu/v2/customers?per_page=20&page=2&search=john&status=active
Paramètres courants :
per_page- Éléments par page (par défaut : 20, max : 100)page- Numéro de pagesearch- Terme de rechercheorderby- Champ de triorder- Direction du tri (asc/desc)status- Filtrer par statutdate_created- Filtrer par plage de dates