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.

Références officielles WordPress

Bouton retour en haut de la page