vendredi 25 septembre 2026

À propos

Contact

Lexique · Extensions & API WordPress

Contrôleur REST

En anglais : « REST controller »

Classe PHP qui regroupe la logique d'une ressource de l'API REST WordPress : lecture, création, modification et suppression, avec ses règles de permission.

Multiplier les points de terminaison un par un devient vite difficile à maintenir dès qu’une ressource a besoin des quatre opérations classiques (lister, lire, créer, modifier). WordPress propose donc une structure orientée objet pour organiser ce travail de façon cohérente, celle que le cœur utilise lui-même pour les articles ou les utilisateurs.

Structure d’un contrôleur

Un contrôleur personnalisé étend généralement la classe abstraite WP_REST_Controller et implémente des méthodes comme get_items(), get_item(), create_item() ou leurs équivalents de vérification des permissions, get_items_permissions_check() :

class Mon_Controleur extends WP_REST_Controller {
  public function register_routes() {
    register_rest_route( 'mon-app/v1', '/taches', array(
      'methods'  => 'GET',
      'callback' => array( $this, 'get_items' ),
      'permission_callback' => array( $this, 'get_items_permissions_check' ),
    ) );
  }
}

La méthode register_routes() est ensuite appelée sur le hook rest_api_init.

Bon à savoir

  • Utiliser WP_REST_Controller n’est pas obligatoire pour une route simple déclarée directement avec register_rest_route(), mais devient utile dès que la ressource gère plusieurs opérations et un schéma de données.
  • Le schéma renvoyé par get_item_schema() sert aussi à générer automatiquement la documentation visible via l’option ?_fields ou les outils d’introspection de l’API.
  • Un contrôleur bien conçu délègue la vérification des permissions à des méthodes séparées plutôt que de mélanger cette logique avec le traitement de la donnée, ce qui facilite les tests et la relecture du code.