gpt4 book ai didi

javascript - 我的 API 是否应该同时包含枚举的数字和字符串表示形式?

转载 作者:太空宇宙 更新时间:2023-11-04 02:49:44 25 4
gpt4 key购买 nike

背景信息

在我正在开发的产品中,我们有很多枚举值来存储一段数据的“类型”。例如(这个东西存在于微 Controller 的 C 中):

typedef enum
{
Temperature = 100,
InputVoltage = 200,
AverageVoltage = 201,
Current = 300,
} ReadingType_t;

这使我们能够一般地处理“读数”,有点像这样:

typedef struct
{
ReadingType_t type;
sint32_t value;
} Reading_t;

Reading_t readings[5];
readings[0].type = Temperature;
readings[0].value = 25; // in degrees C
readings[1].type = InputVoltage;
readings[1].value = 4321; // in milliVolts

问题

我正在尝试指定一个基于 JSON 的 API 来输出这种形式的信息。我有的一些可能的格式包括:

readings = [
{
"type": "Temperature",
"value": 25
},
{
"type": "InputVoltage",
"value": 4321,
}
]

readings = [
{
"type": 100,
"value": 25
},
{
"type": 200,
"value": 4321,
}
]

readings = [
{
"type": {
"code": 100,
"name": "Temperature"
},
"value": 25
},
{
"type": {
"code": 200,
"name": "InputVoltage"
},
"value": 4321,
}
]

假设

我假设 API 生成 JSON。

我假设 API 将由 Javascript 客户端应用程序使用和/或直接用于调试。

问题

我的问题是:

  1. 我应该包括枚举“code”、“title”还是两者都包括?是否有公认的做法?
  2. 如果我包含“标题”,它应该采用常规语言格式吗?即我应该使用“InputVoltage”还是“Input Voltage”?
  3. 我应该如何支持国际化与消费便利性? IE。:
    • 如果我发送数字“代码”,则不会混淆类型是什么,但必须使用查找表来获取人类可用的字符串(使用不同的表进行国际化)
    • 如果我以常规语言格式发送字符串“title”,API 必须执行国际化(这很好)但是我们不能根据该值执行任何逻辑(因为“title”会根据语言而变化,而代码不会)。

最佳答案

我强烈建议不要在输出中包含代码和名称。这是多余的,只要您想要支持数据的读/写,它就会将您与有效的代码和名称联系在一起。

我建议将名称输出到文件中。该代码是将来可能会更改的实现细节。今天你有一个 enum,明天你可能有一个哈希表。但名称是很可能不会更改的有意义的信息。

关于javascript - 我的 API 是否应该同时包含枚举的数字和字符串表示形式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23378882/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com