Im Zuge der Definition des neuen JSON-Output-Schemas (siehe ADR-006) wurde Feedback gesammelt, das zwei wesentliche Verbesserungen vorschlägt:
-
Ambiguität des Feldes
payload: Der Begriffpayloadwird in MQTT- und Messaging-Kontexten häufig für den gesamten Nachrichteninhalt verwendet. Die Verwendung vonpayloadfür die spezifischen, decodierten Hex-Daten kann daher zu Verwirrung führen. -
Bedarf an Rohdaten: Für Debugging-Zwecke und fortgeschrittene Analysen ist es notwendig, Zugriff auf die ursprüngliche, unveränderte Nachricht zu haben, wie sie vom Signalduino-Gerät empfangen wurde (z.B. der komplette
MU;…- oderMC;…-String), bevor irgendeine Verarbeitung oder Parsing stattgefunden hat.
Wir passen das in ADR-006 definierte Schema wie folgt an:
-
Umbenennung
payloadzudata: Das Feld, das bisherpayloadhieß und die bereinigten Hex- oder Binärdaten (ohne Preamble) enthielt, wird indataumbenannt. -
Einführung des Feldes
raw: Es wird ein neues Feldrawauf der obersten Ebene des JSON-Objekts eingeführt. Dieses Feld enthält den ursprünglichen Nachrichten-String, der an den Parser übergeben wurde.
-
Klarere Semantik:
dataist ein neutralerer Begriff für den Dateninhalt und vermeidet die Überladung des Begriffspayload. -
Verbesserte Debugging-Möglichkeiten: Durch das
raw-Feld können Entwickler und User jederzeit nachvollziehen, was genau vom Gerät empfangen wurde, und Parser-Fehler leichter diagnostizieren. -
Vollständigkeit: Keine Information geht verloren; sowohl die Rohdaten als auch die interpretierten Daten stehen zur Verfügung.