Sur cette page

Pour savoir ce qui a changé dans une réponse JSON d’API, conservez une ancienne et une nouvelle réponse pour le même cas, vérifiez que chacune contient du JSON valide, puis comparez leurs valeurs. Examinez les chemins signalés comme ajouts, suppressions ou modifications à l’aide du contrat de l’API. La comparaison révèle les différences entre ces deux échantillons ; déterminer si l’une d’elles est une régression demande de connaître le résultat attendu.

1. Préparez deux captures comparables

Utilisez le même endpoint, la même méthode, les mêmes paramètres et le même contexte de données avant et après la modification. Comparer deux commandes distinctes peut produire des écarts sans rapport avec le déploiement. Conservez aussi le code de statut HTTP et le contexte utile à l’interprétation : le comparateur examine les corps JSON que vous lui fournissez.

Remplacez les jetons, les données personnelles et les autres secrets avant de copier une réponse dans un outil. Un identifiant généré ou un horodatage peuvent changer entre deux requêtes sans que ce soit une anomalie. Examinez ces écarts séparément : JSON Diff ne les ignore pas automatiquement.

Les deux captures doivent être du JSON strict. Si l’une contient des commentaires, des virgules finales ou une erreur de syntaxe, corrigez-la et vérifiez-la avec le validateur JSON avant d’interpréter les différences.

2. Comparez l’ancienne et la nouvelle réponse

Voici deux captures fictives de la même commande A-17. Avant :

{
  "commande": { "id": "A-17", "statut": "en_attente" },
  "lignes": [{ "sku": "CU-1", "quantite": 1 }]
}

Après :

{
  "lignes": [{ "sku": "CU-1", "quantite": 2 }],
  "commande": { "statut": "payee", "id": "A-17" },
  "livraison": null
}

Collez la première capture dans JSON précédent et la seconde dans Nouveau JSON du comparateur JSON. Sélectionnez Comparer, puis lisez le résumé et les chemins. L’ordre différent des clés de l’objet ne crée pas de différence.

Chemin Type Avant → après Point à vérifier
$.commande.statut Modification "en_attente" → "payee" Ce statut était-il attendu pour cette commande ?
$.lignes[0].quantite Modification 1 → 2 Cette quantité était-elle attendue pour la même ligne ?
$.livraison Ajout Absent → null Que signifie cette nouvelle propriété pour les clients ?

Le résumé indique 1 ajout, 0 suppression et 2 modifications, soit 3 différences au total. Une suppression désignerait une propriété ou un élément présent auparavant qui n’apparaît plus. livraison est un ajout même si sa valeur est null : la propriété était absente de l’ancienne réponse. Le tableau lignes est comparé par position ; [0] désigne son premier élément.

Si une insertion dans un tableau produit plusieurs modifications ou si vous hésitez entre un champ absent et null, consultez comment interpréter un diff JSON.

3. Déterminez ce qui doit être vérifié

Confrontez chaque chemin au contrat et aux tests de l’API. Le statut payee peut être prévu ; le passage de 1 à 2 pour la quantité justifie un contrôle des données d’entrée et des règles de commande. Pour livraison, vérifiez si les clients distinguent une propriété absente d’une propriété présente avec null. Le simple ajout d’un champ ne prouve ni la compatibilité ni une rupture du contrat.

Si vous confirmez une régression, documentez le cas et ajoutez ou adaptez une assertion dans vos tests d’API. Si la comparaison ne montre aucune différence, vous savez seulement que ces deux corps JSON sont égaux en valeur selon le comparateur. Cela ne prouve pas que les autres requêtes, les en-têtes ou le comportement de l’API sont identiques.

Partager ce guide

Lien de l’article