WP_REST_Controller

Définition : WP_REST_Controller est la classe de base proposée par WordPress pour organiser des endpoints REST autour d’une ressource. Elle structure les méthodes d’enregistrement, de permission, de traitement et de préparation des réponses.

Comprendre et utiliser

À quoi sert cette notion ?

Elle fournit un cadre réutilisable lorsque plusieurs opérations portent sur une même entité. L’architecture devient plus lisible qu’une longue série de callbacks anonymes.

Fonctionnement technique

Une classe dérivée déclare ses routes dans register_routes() et définit des méthodes correspondant aux opérations prises en charge. Elle peut réutiliser des aides pour les schémas et la préparation de collections.

Dans quel contexte l’utiliser ?

Un plugin gérant des fiches internes a besoin de lister, consulter et actualiser une même entité, chaque opération appliquant ses capacités.

Étude de cas : application professionnelle

Un plugin qui expose plusieurs opérations devient difficile à maintenir lorsque toutes les callbacks sont écrites dans un fichier unique. L’organisation par contrôleur facilite la correspondance entre ressources, méthodes, droits et schémas. Dessiner la classe avant de coder : register_routes() annonce les opérations, les méthodes de permission filtrent les accès, les méthodes de préparation construisent les données. Pour chaque opération, préparer au moins un test de succès et un test d’échec. La classe de base apporte un cadre, mais ne connaît pas les règles spécifiques du métier ATOOLPHA.

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
class Atoolpha_Demo_Controller extends WP_REST_Controller {
    public function register_routes() {
        // Déclarer ici routes, callbacks et permissions.
    }
}
// Exemple d’architecture, sans route active à ce stade.

Décryptage du code et résultat attendu

L’extrait montre uniquement le squelette d’héritage. Il ne constitue pas un contrôleur opérationnel tant que les méthodes et les routes ne sont pas définies.

Exercice guidé pour vérifier la notion

Pour un type de contenu de test, dessiner la correspondance entre cinq opérations CRUD et cinq méthodes d’un contrôleur.

Précautions et limites

Ne pas recopier aveuglément les méthodes d’un contrôleur du Core. La vérification des permissions doit correspondre à la ressource du plugin.

À ne pas confondre

WP_REST_Controller organise la ressource ; WP_REST_Server gère le dispatch global de l’API.

Diagnostic avancé

Si la route est enregistrée mais renvoie toujours un résultat vide, tracer l’appel vers le gestionnaire spécifique et vérifier les conversions de schéma.

Choix d’architecture et déploiement

Séparer les requêtes aux données, la logique métier et la préparation HTTP. Cette discipline facilite les tests et la stabilité d’une API versionnée.

Références officielles WordPress

Bouton retour en haut de la page