null vs clé manquante dans la réponse de l'API REST [fermé]

41

Dites dans mon application, certains utilisateurs nous donnent leur nom de famille, d'autres non. Dans une réponse de l'API REST, quel corps est préféré:

Avec une valeur "null":

{"firstName": "Bob",
 "lastName": null}

Ou juste une clé manquante:

{"firstName": "Bob"}
jtmarmon
la source

Réponses:

31

Envisagez de supprimer les valeurs vides ou nulles.

Si une propriété est facultative ou si sa valeur est vide ou nulle, envisagez de la supprimer du fichier JSON, sauf en cas de forte raison sémantique.

{
  "volume": 10,

  // Even though the "balance" property's value is zero, it should be left in,
  // since "0" signifies "even balance" (the value could be "-1" for left
  // balance and "+1" for right balance.
  "balance": 0,

  // The "currentlyPlaying" property can be left out since it is null.
  // "currentlyPlaying": null
}

Pour en savoir plus
Guide de style de Google - Valeurs de propriétés vides ou Null Les valeurs
NULL doivent-elles être incluses dans les réponses JSON d'une API REST?

Robert Harvey
la source
merci pour le lien, Robert. Ainsi, même si currentlyPlayingcertaines réponses seront utilisées, il est préférable de demander au client de vérifier si la clé existe ou non, plutôt que de vérifier si elle est nulle.
jtmarmon
nullet undefinedont presque la même signification en Javascript, et vous pouvez vérifier leur utilisation à l' aide deif (myProperty == null)
Robert Harvey
En fait, dans mon cas, le client peut être java, objective-c ou javascript. le lien dans le deuxième lien (API-craft) m'indique que null correspond à notre cas d'utilisation sémantique, mais surtout que je devrais simplement prendre une décision et y tenir: P merci encore
jtmarmon
Simple: si l'application doit faire la distinction entre différentes valeurs, le serveur doit fournir des valeurs différentes, sinon il n'a pas besoin et ne devrait pas. Votre application doit-elle faire la distinction entre une clé absente, une clé pour laquelle une chaîne est vide et une clé pour une valeur nulle?
gnasher729
3
La réponse de cet article explique pourquoi vous ne devez pas supprimer les champs nuls.
Dave New