Je suis en train de créer une API qui renvoie les résultats en JSON. Existe-t-il une meilleure pratique actuelle pour savoir si nous devons inclure les clés dans le résultat lorsque la valeur est nulle ? Par exemple :
{
"title":"Foo Bar",
"author":"Joe Blow",
"isbn":null
}
ou
{
"title":"Foo Bar",
"author":"Joe Blow"
}
Comme le second est plus petit, je penche pour ce style, mais je ne suis pas sûr qu'il y ait un style préféré ou non. Du point de vue du client, il semble que les deux styles soient fonctionnellement équivalents. Quels sont les avantages et les inconvénients de chacun ?
8 votes
Il est impossible de répondre correctement à cette question. La réponse correcte dépend des exigences de l'application. Le PO a simplement choisi la réponse qui correspond à ses besoins. Si votre application doit être capable de faire la distinction entre savoir si le "isbn" est nul et savoir si le "isbn" peut ne pas avoir été envoyé par le serveur pour une autre raison, vous devez l'inclure.
0 votes
@Jacob Bien que je ne l'aie pas dit, mon intention avec cette question était que le JSON "complet" représentant la réponse soit renvoyé. Quand un client peut supposer qu'il n'y a pas de différence fonctionnelle entre les deux approches. Si l'API ne renvoyait pas les clés/valeurs de manière sélective, alors oui, il y aurait une grande différence entre les deux approches.
0 votes
L'avantage de la première représentation est que le schéma de l'objet est préservé, la présence de la propriété n'est pas ambiguë en fonction des données. dans le second format, cette information est perdue. La spécification JSON en tant que telle n'impose aucun des deux formats.
0 votes
Je pense qu'il n'y a rien d'opinionnel dans cette question. JSON est un standard. Il devrait y avoir une spécification pour lui, et probablement un tas de RFC. // En plus de cela, même les questions d'opinion peuvent être acceptables. Il y a déjà eu des discussions à ce sujet sur meta.stackexchange où il a été décidé que les questions d'opinion étaient acceptables pour partager les "meilleures pratiques".