Lorsque vous exploitez les détails de résolution d'erreur d'API, vous pouvez obtenir plus de flexibilité dans les points de données que vous voulez exploiter en collectant des éléments spécifiques de la requête ou du corps de réponses au format JSON, à l'aide de chemins JSON.
Le chemin JSON est un langage de requête puissant utilisé pour naviguer et extraire des données des structures JSON. Cependant, nous avons appliqué quelques limitations à l'utilisation de certains opérateurs de chemins JSON pour leur utilisation pour les attributs de corps. Cet article vous guidera dans l'utilisation des chemins JSON avec un ensemble d'opérateurs restreint.
Opérateurs disponibles
Voici la liste des opérateurs de chemins JSON disponibles :
Opérateur | Description |
.<name> | Élément enfant pointé : Utilisez la notation par point pour accéder aux éléments enfant d'un objet. |
['<name>'] | Élément enfant entre crochets : Utilisez la notation par crochets pour accéder à l'élément enfant. |
[<number>] | Index du tableau : Utiliser l'index du tableau. |
Limites
- L'opérateur $ n'est pas requis : Vous avez la possibilité de spécifier les éléments à interroger, bien que cela ne soit pas obligatoire.
- L'accès à plusieurs éléments avec plusieurs noms dans un tableau n'est pas possible.
- L'accès à plusieurs éléments avec plusieurs indexs dans un tableau n'est pas possible.
Opérateurs non disponibles : Expressions de filtrage, sections de tableau, analyses approfondies, nœuds actuels et caractères génériques.
Par ailleurs, vous ne pouvez pas utiliser les fonctions de chemins JSON ou filtrer les opérateurs.
Comprendre les opérateurs disponibles et leur utilisation vous permettra de naviguer efficacement dans vos structures JSON et d'en extraire des données, et ce, malgré les limites imposées.
Exemple
Découvrez comment vous pouvez utiliser ces opérateurs dans l'exemple ci-dessous :
{ "errors": [ { "message": "The account sign-in was incorrect or your account is disabled temporarily. Please wait and try again later.", "extensions": { "category": "graphql-authentication" }, "locations": [ { "line": 2, "column": 3 } ], "path": [ "generateCustomerToken" ], "code": 10005 } ], "data": { "generateCustomerToken": null, "emailAddressCheck": "valid", “emailAddress”: “bob@contentsquare.com” }
Chemin JSON | Status | Résultat obtenu |
errors[0].message | ✅ | “La connexion au compte est incorrecte ou votre compte est temporairement désactivé. Veuillez réessayer ultérieurement.” |
errors[0].extensions.category | ✅ | “graphql-authentication” |
data.emailAddressCheck | ✅ | “valid” |
data[“emailAddressCheck”] | ✅ | “valid” |
data.emailAddress | ✅ | “name@contentsquare.com” |
errors | ❌ | “N/A” (“errors” est un tableau et seuls une value chaîne peut être renvoyée) |
errors.message | ❌ | “N/A” (“errors” est un tableau) |
data[0] | ❌ | “N/A” (l'élément “data” n'est pas un tableau) |