首页 > 解决方案 > 我应该返回一个数组而不是单个值吗?

问题描述

我们有一个使用 REST 和 JSON 与 ReactJS 前端交互的 C# WebAPI。我们偶然发现了需要从服务器向客户端发送大量数据的情况。

格式基本上是:

[
    {
        id: 1,
        description: "description for Id 1",
        parentId: 1
    },
    {
        id: 2,
        description: "description for Id 2",
        parentId: 1
    },
    {
        id: 3,
        description: "description for Id 3",
        parentId: 2
    },
   ......
]

我们的前端开发人员试图说服我使用这样的数组:

[
    [1, 'description for Id 1', 1],
    [2, 'description for Id 2', 1],
    [3, 'description for Id 3', 2],
    ....
]

这当然使 JSON 更轻量级,但我认为这是一种不必要的 hack,它破坏了格式的逻辑和描述性。

我的问题是:

这是一个不好的做法吗?这是否破坏了服务器和客户端之间的“预期”合同?或者这是一种正常的优化做法?

PS:在写这个问题之前,我怀疑这是否会作为“基于主要意见的问题”而结束,但我不认为是这种情况。

标签: c#jsonrest

解决方案


请记住,除非您真的弄乱了服务器设置,否则数据会以 gzip 格式发送。比较这两个(小)样本的压缩形式,差异约为 20 字节(101 字节与 77 字节)。

而且它只会越来越小,相对而言,你拥有的条目越多,因为公共部分保持不变,它们只需要编码一次。


推荐阅读