参照: https ://github.com/TheThingsNetwork/lorawan-stack/issues/2047
mac_settings
フィールド内の列挙型に対してNSから返される値に一貫性がありません。 一部のNSは生の値を返し、その他のNSは文字列表現を返します。
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.
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.
mac_settings
列挙型フィールドの値に一貫性がありません
すべての値は同じ形式(raw / string)で返される必要があります
v3.7.0-rc2
まず、フォーマットについて合意する必要があると思います。 次に、https://github.com/TheThingsNetwork/lorawan-stack/blob/master/api/lorawan.protoとhttps://github.com/TheThingsNetwork/lorawan-stack/blob/master/pkgを調整します。 /ttnpb/lorawan.go
はい、ただし@rvolosatovs @ johanstokking @ htdvisserからの入力が必要です
私たち( @rvolosatovs @johanstokking @htdvisser)からどのような入力が必要ですか? この問題にはdiscussion
ラベルがありませんか?
FTR、それは私たちが話しているフィールドに依存すると思いますが、LoRaWAN固有のMACのものについては、仕様と一致しているので、数字だけを使用する必要があると思います( PING_EVERY_2S
のPingスロットの周期性はそうではありません仕様で定義されていますが、 1
の1つは)
残念ながら、これはAPI互換性のコミットメントに違反するため、変更できるものではありません。したがって、これは3月の問題ではありません。
現在、列挙型をレンダリングする方法は複数あります。 たとえば、 MACVersion
は、 "MAC_V1_0_2"
、 3
(両方ともjsonpb準拠)、または"1.0.2"
(TTNのストリンガーを使用、非準拠)としてレンダリングできます。 過去に、JSONをレンダリングするときに3番目( "1.0.2"
)を使用するという間違いを犯しました。 それを行うべきではありませんでしたが、APIを壊さずにそれを変更することはできません。
可能な限り互換性を保つために、リクエストメッセージのすべてのフォームを受け入れますが、返されるものを簡単に変更することはできなくなりました。
将来的には(goproto v2 APIを使用して)、Githubがこれを行うのと同様に、 Accept
ヘッダーに拡張機能のサポートを追加する可能性があります。 次に、この拡張機能を使用して、列挙型(およびたとえばゼロフィールド)をレンダリングする方法をサーバーに指示できます。
これを修正しないので閉じました
これをすぐに却下するべきではないと思います。 バックログに残して、将来修正できるかどうか見てみましょう。
V4に最適
最も参考になるコメント
V4に最適