我正在构建用于创建资源的REST API。资源只有一个属性,它是一个相当长且唯一的字符串。我打算将此数据作为JSON发送到API。我看到了两种将数据建模为JSON的选择
两个选项均起作用。
在此情况下,这两个选项中的哪个是首选?为什么呢?
答案 0 :(得分:2)
我个人使用选项2,即:“一个具有String属性的JSON对象。”
此外,在设计方面:我更喜欢返回一个具有键/值的对象。密钥也是提供有关已返回内容的上下文的名称。
仅返回一个字符串,基本上是一个“”或{“”}就缺少该上下文(返回变量的名称。
对于String本身是否是有效的JSON文档似乎也有些困惑。
在以下提到各种技术规范的帖子中,这种混乱和辩论非常明显:Is a primitive type considered JSON?
唯一可以确定的是,具有键值对的JSON对象绝对有效!
关于字符串本身。.我不确定(需要更多阅读)。
在上面的特定情况下,涉及到一个很大的字符串,“运行到几千字节” ...我的感觉是,这将包含在请求正文中。
在发送数据的特定上下文中,我实际上会习惯使用1或2。此外,似乎1是更优化的(如果您的框架支持),因为有关数据内容的上下文与其余API方法。
但是,如果将来需要再添加一个参数,则必须使用具有多个密钥的JSON实体。