Lorawan-stack: عرض تعداد غير متسق في استجابات JSON

تم إنشاؤها على ٢٩ مارس ٢٠٢٠  ·  5تعليقات  ·  مصدر: TheThingsNetwork/lorawan-stack

ملخص

المراجع: https://github.com/TheThingsNetwork/lorawan-stack/issues/2047

القيم التي أرجعها NS للتعدادات داخل الحقل mac_settings غير متسقة. يُرجع البعض بالنسبة لبعض NS قيمًا أولية ، وبالنسبة للآخرين ، يتم إرجاع تمثيل سلسلة.

خطوات التكاثر

  1. عيّن 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. تعيين 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

ماذا تريد ان ترى بدلا من ذلك؟

يجب إرجاع جميع القيم بنفس التنسيق (خام / سلسلة)

بيئة

الإصدار 3.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

هل يمكنك القيام بذلك بنفسك وإرسال طلب سحب؟

نعم ، لكن أحتاج إلى مدخلات من rvolosatovsjohanstokkinghtdvisser

bummajor compaapi

التعليق الأكثر فائدة

واحد رائع لـ V4

ال 5 كومينتر

ما المدخلات المطلوبة منا ( @ rvolosatovs johanstokkinghtdvisser )؟ هل تفتقد هذه المشكلة إلى التصنيف discussion ؟

FTR ، أعتقد أنه يعتمد على الحقول التي نتحدث عنها ، ولكن بالنسبة لأشياء MAC الخاصة بـ LoRaWAN ، أعتقد أنه يجب علينا استخدام الرقم فقط ، نظرًا لأن ذلك يتوافق مع المواصفات (دورية فتحة Ping PING_EVERY_2S ليست كذلك المحددة في المواصفات ، ولكن قيمة 1 هي)

هذا للأسف ليس شيئًا يمكننا تغييره فقط ، لأنه ينتهك التزامنا بالتوافق مع واجهة برمجة التطبيقات ، لذلك هذا بالتأكيد ليس شيئًا لشهر مارس.

توجد حاليًا طرق متعددة لتقديم التعداد. على سبيل المثال ، يمكن عرض MACVersion كـ "MAC_V1_0_2" ، 3 (كلاهما متوافقان مع jsonpb) أو "1.0.2" (مع TTN's stringer ، غير متوافق). في الماضي ارتكبنا خطأ استخدام الثالث ( "1.0.2" ) عند عرض JSON. لم يكن علينا فعل ذلك ، لكن لا يمكننا تغيير ذلك بعد الآن دون كسر واجهة برمجة التطبيقات الخاصة بنا.

لكي نكون متوافقين قدر الإمكان ، نقبل جميع النماذج في رسائل الطلب ، ولكن ما نعيده لا يمكن تغييره بسهولة بعد الآن.

في المستقبل (باستخدام goproto v2 API) ، ربما يمكننا إضافة دعم لملحق في رأس Accept ، على غرار الطريقة التي يقوم بها Github بهذا. يمكن بعد ذلك استخدام هذا الامتداد لإخبار الخادم بكيفية عرض التعدادات (على سبيل المثال الحقول الصفرية).

مغلق لأننا لن نصلح هذا

لا أعتقد أننا يجب أن نرفض على الفور هذا باعتباره wontfix. دعنا نبقيها في التراكم ونرى ما إذا كان بإمكاننا إصلاحها في المستقبل.

واحد رائع لـ V4

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات