WP_REST_Response::header()
Définition : WP_REST_Response::header() ajoute ou remplace un en-tête HTTP dans une réponse REST WordPress. Elle transmet au client une information de protocole indépendante du contenu JSON retourné.
Comprendre et utiliser
À quoi sert cette notion ?
Elle permet notamment d’ajouter un indicateur de version, une information de diagnostic non sensible ou un en-tête spécifique au contrat d’un endpoint.
Fonctionnement technique
La méthode héritée de WP_HTTP_Response enregistre un nom et une valeur d’en-tête. L’émission finale reste orchestrée par WP_REST_Server.
Dans quel contexte l’utiliser ?
Un service interne indique par un en-tête que la réponse correspond à une version donnée du contrat.
Étude de cas : application professionnelle
Un client peut devoir connaître la version d’un contrat sans ajouter ce détail à chaque objet JSON. Une information d’en-tête peut convenir, à condition de rester stable, compréhensible et non sensible. Tester ce choix avec l’onglet Réseau du navigateur ou un outil HTTP : le corps et les en-têtes sont affichés séparément. Noter ensuite l’effet éventuel d’un cache ou d’un proxy. Si un consommateur n’a pas accès aux en-têtes pour des raisons CORS, prévoir explicitement cette contrainte avant d’adopter cette interface.
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
$response = rest_ensure_response( array( 'statut' => 'ok' ) );
$response->header( 'X-Atolpha-Api-Version', '1' );
return $response;
Décryptage du code et résultat attendu
L’en-tête personnalisé apparaît dans la réponse HTTP, tandis que le corps contient l’objet JSON. L’exemple est purement démonstratif.
Exercice guidé pour vérifier la notion
Interroger un endpoint de test avec un client affichant les en-têtes et vérifier que celui-ci reçoit la version annoncée.
Précautions et limites
Ne pas exposer de secrets, de chemins privés ou de détails internes via les en-têtes. Certains en-têtes sont gérés par WordPress ou l’infrastructure et ne doivent pas être écrasés sans raison.
À ne pas confondre
Un en-tête HTTP décrit la réponse ; un champ JSON fait partie des données retournées. Ils n’ont pas la même vocation.
Diagnostic avancé
Si l’en-tête n’apparaît pas, examiner les proxys, le cache, les filtres et la réponse finalement émise.
Choix d’architecture et déploiement
Choisir un nom explicite pour les en-têtes additionnels et limiter leur usage aux informations réellement utiles au client.
