【发布时间】:2019-02-15 09:35:23
【问题描述】:
我正在构建一个创建资源的 REST API。该资源只有一个属性,即相当长且唯一的字符串。我计划将此数据作为 JSON 发送到 API。我看到将数据建模为 JSON 的两种选择
- 原始 JSON 字符串数据类型
- 具有一个字符串属性的 JSON 对象。
这两个选项都有效。
这两个选项中的哪一个更适合这种情况?为什么?
【问题讨论】:
我正在构建一个创建资源的 REST API。该资源只有一个属性,即相当长且唯一的字符串。我计划将此数据作为 JSON 发送到 API。我看到将数据建模为 JSON 的两种选择
这两个选项都有效。
这两个选项中的哪一个更适合这种情况?为什么?
【问题讨论】:
我个人会使用选项 2,即:`具有一个 String 属性的 JSON 对象。'
另外,在设计方面:我更喜欢返回一个具有键/值的对象。键也是一个名称,提供返回内容的上下文。
仅返回一个字符串,基本上是一个 "" 或 {""} 缺少该上下文(返回变量的名称。
对于 String 本身是否是有效的 JSON 文档,似乎也存在一些混淆。
这种混淆和争论在以下提到各种技术规范的帖子中非常明显:Is a primitive type considered JSON?
唯一可以确定的是,带有键值对的 JSON 对象绝对有效!
至于字符串本身..我不确定(需要更多阅读)。
在上面的特定情况下,与“运行到几千字节”的如此大的字符串有关......我的感觉是这将包含在请求正文中。
在发送数据的特定上下文中,我实际上可以使用 1 或 2。此外,1 似乎更优化(如果您的框架支持它),因为有关数据是什么的上下文与REST API 方法。
但是,如果将来您需要再添加一个参数,则必须使用具有多个键的 JSON 实体。
【讨论】: