WP_REST_Request::get_json_params()

Définition : WP_REST_Request::get_json_params() lit les paramètres décodés du corps JSON d’une requête REST WordPress. Elle permet de distinguer les données envoyées comme JSON de celles présentes dans l’URL.

Comprendre et utiliser

À quoi sert cette notion ?

Elle est utile aux opérations de création ou modification pilotées par un client JavaScript et évite de traiter indistinctement les paramètres d’un formulaire et ceux du corps JSON.

Fonctionnement technique

WordPress décode le JSON selon le type MIME et les règles de l’objet requête. En cas de JSON mal formé, le serveur peut produire une erreur de validation avant la callback.

Dans quel contexte l’utiliser ?

Une interface de suivi envoie un titre et une description à un endpoint REST d’écriture autorisé.

Étude de cas : application professionnelle

Dans un formulaire distant, le corps JSON peut être correct, vide ou mal formé. L’API doit documenter la différence entre une propriété absente, une propriété vide et une valeur explicitement nulle. get_json_params() permet de travailler sur la représentation envoyée dans le corps, à condition que les en-têtes HTTP soient cohérents. Un test pratique envoie d’abord une note valide, puis une chaîne au lieu d’un objet et enfin un JSON invalide. Vérifier que les erreurs ont un statut adapté et qu’aucune écriture partielle ne s’est produite.

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
$data = $request->get_json_params();
$title = is_array( $data ) && isset( $data['title'] )
    ? sanitize_text_field( $data['title'] )
    : '';
// Valider ensuite les règles métier avant écriture.

Décryptage du code et résultat attendu

L’extrait montre comment lire explicitement les données JSON puis traiter un champ textuel. Il n’effectue aucune insertion et ne remplace pas le schéma de route.

Exercice guidé pour vérifier la notion

Envoyer un objet JSON valide, puis un JSON mal formé depuis un client de test ; comparer le résultat et le code d’erreur.

Précautions et limites

Vérifier Content-Type: application/json et la forme réelle du corps. La simple désérialisation JSON n’accorde aucun droit de modification.

À ne pas confondre

get_json_params() lit le corps JSON ; get_param() peut lire un paramètre issu d’autres sources également.

Diagnostic avancé

Lorsque get_json_params() semble vide, vérifier l’en-tête Content-Type avant de modifier le code métier.

Choix d’architecture et déploiement

Pour une API publique, documenter la structure JSON et traiter explicitement les propriétés optionnelles, null et les types inattendus.

Références officielles WordPress

Bouton retour en haut de la page