Je suis en train de concevoir et de développer une API RESTful. J'adopte une approche pragmatique et orientée ressources de l'API (orientée ressources, interface uniforme, adressabilité, mais pas de véritable HATEOAS). Cependant, je ne suis pas sûr de savoir comment aborder les valeurs nulles dans les objets.
Dois-je inclure des champs avec des valeurs nulles dans les réponses des API?
Exemple:
{
"fieldA": "AAA",
"fieldB": null
}
Ou, dois-je simplement laisser ces champs complètement si le système n'a pas de données pour ces champs?
Exemple:
{
"fieldA": "AAA"
}
Il y a eu une discussion à ce sujet récemment sur API-Craft . Le consensus général était qu'il existe potentiellement une différence sémantique entre l'omission d'une valeur, et l'inclusion d'une valeur nulle.
S'il n'y a pas de valeur sémantique à gagner pour votre cas d'utilisation spécifique, je dirais que regardez vos consommateurs cibles de l'API et demandez-vous si l'omission de la valeur leur causera des problèmes.
Il n'y a pas de vainqueur clair. Et parce qu'il n'y en a pas, les clients ne devraient jamais dépendre techniquement d'une convention à ce sujet, les clients ne devraient pas s'attendre à l'une ou l'autre forme.
?fields=foo,bar
où retourner des valeurs nulles pour tous les autres champs semble un peu contre-intuitif