WP_REST_Response::set_status()
Définition : WP_REST_Response::set_status() modifie le code HTTP porté par une réponse REST WordPress. Cette méthode héritée de WP_HTTP_Response permet de signaler clairement une réussite, une création ou un autre résultat.
Comprendre et utiliser
À quoi sert cette notion ?
Elle donne au client un signal standard pour choisir son comportement sans inspecter seulement le message textuel renvoyé dans le JSON.
Fonctionnement technique
La méthode enregistre un entier correspondant au statut HTTP ; le serveur utilise ensuite cette valeur lors de l’émission de la réponse. Les données restent indépendantes du statut.
Dans quel contexte l’utiliser ?
Une création validée doit retourner 201, tandis qu’une simple consultation réussie utilise normalement 200.
Étude de cas : application professionnelle
Un formulaire d’administration peut réussir techniquement une validation mais échouer lors d’une écriture en base. Si le code renvoie toujours 200, le navigateur affiche un succès trompeur. set_status() aide à communiquer le bon état HTTP, mais seulement après avoir établi le résultat réel de l’opération. Dans une maquette, comparer une création simulée avec une vraie lecture réussie, puis produire volontairement un cas de validation refusée. Vérifier que l’interface n’affiche pas le même message pour les trois. Un statut ne remplace jamais le traitement métier.
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( 'id' => 42 ) );
$response->set_status( 201 ); // Création réussie, en scénario réel.
return $response;
Décryptage du code et résultat attendu
Le tableau est encapsulé dans une réponse, puis son statut est ajusté. Le code ne crée lui-même aucune donnée : 201 est ici purement illustratif.
Exercice guidé pour vérifier la notion
Retourner successivement 200, 201 et un WP_Error de validation depuis un endpoint factice et vérifier le statut avec les outils réseau.
Précautions et limites
Une erreur d’autorisation ou de validation ne doit pas être déguisée en code 200. Ne pas utiliser des statuts arbitraires hors de la sémantique HTTP.
À ne pas confondre
set_status() concerne le code HTTP ; set_data() modifie les données, et header() ajoute un en-tête.
Diagnostic avancé
Si un client passe dans la branche succès malgré une erreur métier, commencer par contrôler le statut HTTP envoyé.
Choix d’architecture et déploiement
Centraliser le choix des statuts dans le traitement serveur et prévoir les cas de succès partiel ou de ressource inexistante.
