Null vs fehlender Schlüssel in der REST-API-Antwort [geschlossen]

40

Sagen Sie in meiner Anwendung, einige Benutzer geben uns ihren Nachnamen und andere nicht. Welcher Body wird in einer REST-API-Antwort bevorzugt:

Mit einem "Null" -Wert:

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

Oder nur ein fehlender Schlüssel:

{"firstName": "Bob"}
jtmarmon
quelle

Antworten:

31

Ziehen Sie in Betracht, leere oder leere Werte zu entfernen.

Wenn eine Eigenschaft optional ist oder einen leeren Wert oder einen Nullwert hat, ziehen Sie in Betracht, die Eigenschaft aus dem JSON zu löschen, es sei denn, es gibt einen starken semantischen Grund für ihre Existenz.

{
  "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
}

Weitere Informationen
Google Style Guide - Leere oder Null-Eigenschaftswerte
Sollten Nullwerte in JSON-Antworten von einer REST-API enthalten sein?

Robert Harvey
quelle
Danke für den Link, Robert. currentlyPlayingAlso, selbst wenn es in einigen Antworten und nicht in anderen Antworten vorkommt, ist es vorzuziehen, den Client prüfen zu lassen, ob der Schlüssel vorhanden ist oder nicht, anstatt zu prüfen, ob er null ist?
Jtmarmon
nullund undefinedhaben fast die gleiche Bedeutung in Javascript, und Sie können für beide mit überprüfenif (myProperty == null)
Robert Harvey
Nun, in meinem Fall könnte der Client Java, Objective-C oder Javascript sein. der link innerhalb des zweiten links (API-craft) zeigt mir, dass null zu unserem semantischen
anwendungsfall
Einfach: Wenn die Anwendung zwischen verschiedenen Werten unterscheiden muss, muss der Server verschiedene Werte bereitstellen, andernfalls muss und sollte er nicht. Muss Ihre App zwischen einem nicht vorhandenen Schlüssel, einem Schlüssel mit einer leeren Zeichenfolge als Wert und einem Schlüssel mit einem Nullwert unterscheiden?
gnasher729
3
Die Antwort in diesem Beitrag spricht einige gute Gründe an, warum Sie keine Nullfelder entfernen sollten.
Dave New