WP_REST_Server
Définition : WP_REST_Server est la classe du Core qui orchestre le traitement des requêtes et réponses de la REST API WordPress. Elle enregistre les routes, choisit les endpoints et prépare leur livraison HTTP.
Comprendre et utiliser
À quoi sert cette notion ?
Elle constitue le moteur serveur central des intégrations REST. Connaître son rôle aide à comprendre où interviennent les filtres, l’authentification, le routage et la sérialisation JSON.
Fonctionnement technique
WordPress maintient une instance de serveur et lui confie l’exécution des requêtes. Les plugins utilisent généralement les fonctions publiques comme register_rest_route() plutôt que manipuler directement toutes ses méthodes internes.
Dans quel contexte l’utiliser ?
Lorsqu’une route répond différemment entre un appel HTTP et un appel interne, l’analyse du serveur et des filtres de dispatch aide à identifier l’étape en cause.
Étude de cas : application professionnelle
Pour diagnostiquer une route qui renvoie 404, dessiner la chaîne serveur : initialisation REST, enregistrement des routes, sélection de la méthode, permission, callback, réponse. WP_REST_Server est l’orchestrateur de ce parcours. Inspecter get_routes() peut permettre de confirmer que l’enregistrement existe. Il faut ensuite distinguer une route absente d’une route existante dont la permission refuse la demande. Cette approche empêche de modifier inutilement la configuration des URL ou la sécurité du site alors que le défaut provient d’une callback d’enregistrement.
Exemple technique commenté
Cet extrait est destiné à un fichier PHP chargé par WordPress, idéalement dans un plugin local de test. Il ne doit pas être placé dans l'éditeur de contenu. Avant exécution, vérifier que les objets et variables mentionnés existent dans le contexte et que les permissions nécessaires sont définies.
<?php
$server = rest_get_server();
$routes = $server->get_routes();
// Utiliser cet inventaire pour un diagnostic local,
// sans exposer toute la structure dans un endpoint public.
Décryptage du code et résultat attendu
La fonction récupère le serveur courant ; get_routes() fournit son inventaire d’enregistrements. L’extrait ne modifie pas les routes.
Exercice guidé pour vérifier la notion
Dans un environnement local, comparer le catalogue du serveur aux routes visibles dans l’index de découverte.
Précautions et limites
Ne pas créer une nouvelle instance de WP_REST_Server pour contourner le cycle normal du Core. Éviter d’exposer des informations de diagnostic sensibles.
À ne pas confondre
Le serveur REST orchestre les opérations ; un contrôleur implémente les opérations d’une famille de ressources.
Diagnostic avancé
Lorsqu’une route annoncée n’est pas accessible, contrôler la déclaration, la méthode, la permission et les filtres de dispatch successivement.
Choix d’architecture et déploiement
Pour les plugins, privilégier la surface API documentée. Réserver les détails internes du serveur aux diagnostics et aux extensions spécifiquement conçues pour eux.
