Lorawan-stack: Inkonsistente AufzÀhlungswiedergabe in JSON-Antworten

Erstellt am 29. MĂ€rz 2020  Â·  5Kommentare  Â·  Quelle: TheThingsNetwork/lorawan-stack

Zusammenfassung

Referenzen: https://github.com/TheThingsNetwork/lorawan-stack/issues/2047

Von NS zurĂŒckgegebene Werte fĂŒr AufzĂ€hlungen im Feld mac_settings sind inkonsistent. Einige fĂŒr einige NS geben Rohwerte zurĂŒck und fĂŒr andere wird eine Zeichenfolgendarstellung zurĂŒckgegeben.

Schritte zum Reproduzieren

  1. Stellen Sie mac_settings.rx1_delay.value
// request
{
   "end_device":{
      "mac_settings":{
         "rx1_delay":{
            "value":5 // or 'RX_DELAY_5'
         }
      }
   },
   "field_mask":{
      "paths":[
         "mac_settings.rx1_delay.value",
      ]
   }
}

// response
{
   ...
   "mac_settings":{
      "rx1_delay":{
         "value":5
      },
   }
}

// Note, regardless of what you send as the value for mac_settings.rx1_delay.value you always get the raw enum value.
  1. Stellen Sie mac_settings.ping_slot_periodicity.value
// request

{
   "end_device":{
      "mac_settings":{
         "ping_slot_periodicity":{
            "value": 1 // or 'PING_EVERY_2S'
         }
      }
   },
   "field_mask":{
      "paths":[
         "mac_settings.ping_slot_periodicity.value"
      ]
   }
}

// response

{
   "mac_settings":{
      "ping_slot_periodicity":{
         "value":"PING_EVERY_2S"
      }
   }
}

// Again, regardless of what you send you always get the string representation of the value.

Was siehst du jetzt?

Inkonsistente Werte fĂŒr mac_settings Enum-Felder

Was möchtest du stattdessen sehen?

Alle Werte sollten im gleichen Format (raw/string) zurĂŒckgegeben werden

Umfeld

v3.7.0-rc2

Wie schlagen Sie vor, dies umzusetzen?

Ich denke, zuerst mĂŒssen wir uns auf das Format einigen. Dann gilt es, https://github.com/TheThingsNetwork/lorawan-stack/blob/master/api/lorawan.proto und https://github.com/TheThingsNetwork/lorawan-stack/blob/master/pkg anzupassen

Können Sie dies selbst tun und einen Pull-Request einreichen?

Ja, aber ich brauche Input von @rvolosatovs @johanstokking @htdvisser

bummajor compaapi

Hilfreichster Kommentar

Super fĂŒr V4

Alle 5 Kommentare

Welche Eingaben sind von uns erforderlich ( @rvolosatovs @johanstokking @htdvisser)? Fehlt diesem Problem das Label discussion ?

FTR, ich denke, es hĂ€ngt davon ab, ĂŒber welche Felder wir sprechen, aber fĂŒr LoRaWAN-spezifische MAC-Sachen sollten wir meiner Meinung nach nur die Nummer verwenden, da dies mit der Spezifikation ĂŒbereinstimmt (Ping-Slot-PeriodizitĂ€t von PING_EVERY_2S ist es nicht in der Spezifikation definiert, jedoch ist die von 1 )

Dies können wir leider nicht einfach Ă€ndern, da dies gegen unsere API-KompatibilitĂ€tsverpflichtung verstoßen wĂŒrde, also ist dies definitiv nichts fĂŒr MĂ€rz.

Es gibt derzeit tatsÀchlich mehrere Möglichkeiten, eine AufzÀhlung zu rendern. Beispielsweise kann MACVersion als "MAC_V1_0_2" , 3 (beide jsonpb-konform) oder als "1.0.2" (mit TTN-Stringer, nicht konform) gerendert werden. In der Vergangenheit haben wir den Fehler gemacht, beim Rendern von JSON das dritte ( "1.0.2" ) zu verwenden. Wir hÀtten das nicht tun sollen, aber wir können das nicht mehr Àndern, ohne unsere API zu beschÀdigen.

Um so kompatibel wie möglich zu sein, akzeptieren wir alle Formulare in Anfragenachrichten, aber was wir zurĂŒcksenden, kann nicht mehr einfach geĂ€ndert werden.

In Zukunft (mit goproto v2 API) könnten wir vielleicht UnterstĂŒtzung fĂŒr eine Erweiterung im Accept -Header hinzufĂŒgen, Ă€hnlich wie Github dies tut. Diese Erweiterung könnte dann verwendet werden, um dem Server mitzuteilen, wie AufzĂ€hlungen (und beispielsweise Nullfelder) gerendert werden sollen.

geschlossen, da wir das nicht beheben werden

Ich denke nicht, dass wir dies sofort als Wontfix abtun sollten. Lassen Sie es uns im RĂŒckstand behalten und sehen, ob wir es in Zukunft beheben können.

Super fĂŒr V4

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

kschiffer picture kschiffer  Â·  7Kommentare

johanstokking picture johanstokking  Â·  5Kommentare

MatteMoveSRL picture MatteMoveSRL  Â·  7Kommentare

adriansmares picture adriansmares  Â·  8Kommentare

w4tsn picture w4tsn  Â·  6Kommentare