rest_api_init

Définition : rest_api_init est une action WordPress déclenchée lors de l’initialisation du serveur REST. Elle sert principalement à enregistrer des routes, des champs supplémentaires et des contrôleurs au moment approprié.

Comprendre et utiliser

À quoi sert cette notion ?

Elle évite de charger inutilement l’enregistrement des endpoints sur toutes les pages et garantit que les composants REST nécessaires sont disponibles.

Fonctionnement technique

Le Core déclenche l’action lorsqu’il prépare son serveur REST. Une extension attache sa callback avec add_action() puis appelle les API d’enregistrement à partir de cette callback.

Dans quel contexte l’utiliser ?

Un plugin ATOOLPHA expose une route de lecture publique dédiée à un état de démonstration, sans écrire dans la base de données.

Étude de cas : application professionnelle

Dans un plugin WordPress, la déclaration d’une route doit être disponible lorsque le serveur REST se prépare, et non dépendre de l’ouverture d’une page d’administration. Placer l’enregistrement sur rest_api_init permet de vérifier ce contrat séparément. Après activation, consulter la route via le navigateur puis essayer une méthode non prise en charge. Si l’endpoint est absent, vérifier le chargement du plugin et l’exécution du hook avant de modifier les permaliens. Ce chemin de diagnostic évite les corrections aléatoires et préserve le reste du site.

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
add_action( 'rest_api_init', function () {
    register_rest_route( 'atoolpha/v1', '/ping', array(
        'methods' => 'GET',
        'callback' => fn() => array( 'ok' => true ),
        'permission_callback' => '__return_true',
    ) );
} );

Décryptage du code et résultat attendu

Le hook est exécuté durant l’initialisation REST. La route devient disponible sous le namespace déclaré, et le serveur peut répondre à GET /atoolpha/v1/ping.

Exercice guidé pour vérifier la notion

Ajouter ce code dans un plugin de test, consulter la route et vérifier que l’enregistrement ne génère pas de notice de permission_callback.

Précautions et limites

Ne pas déclarer la route directement au chargement arbitraire du plugin. Une callback publique n’est acceptable que si sa réponse ne révèle aucune donnée sensible.

À ne pas confondre

rest_api_init prépare les endpoints ; init est le hook général de WordPress. Le premier n’est pas synonyme du second.

Diagnostic avancé

Une route absente indique souvent que le plugin n’est pas actif ou que le callback d’enregistrement n’est pas exécuté dans le bon cycle.

Choix d’architecture et déploiement

Regrouper les enregistrements REST dans une couche dédiée. Cette séparation facilite les tests et évite les dépendances aux écrans d’administration.

Références officielles WordPress

Bouton retour en haut de la page