c# - 我应该返回一个数组而不是单个值吗?
问题描述
我们有一个使用 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:在写这个问题之前,我怀疑这是否会作为“基于主要意见的问题”而结束,但我不认为是这种情况。
解决方案
请记住,除非您真的弄乱了服务器设置,否则数据会以 gzip 格式发送。比较这两个(小)样本的压缩形式,差异约为 20 字节(101 字节与 77 字节)。
而且它只会越来越小,相对而言,你拥有的条目越多,因为公共部分保持不变,它们只需要编码一次。
推荐阅读
- wpf - 如何为属性值右侧的小方块添加特征(在属性窗口中)?
- php - 未显示任何错误消息,但使用 PHP 的 BigQuery 中没有数据
- c++ - 使用 sizeof() 确定 ArraySize
- flask - 使用布尔值或日期时,sqlalchemy 案例无法正常工作
- c# - 以编程方式调整 Azure 虚拟机大小的语法
- ruby-on-rails - Rails:使用强参数作为关键字参数
- ruby-on-rails - 向关联的 GraphQL 字段返回类型添加附加字段
- meteor - 如何将 account-js 包集成到已经存在的 mongo db?
- vue.js - Nuxt sweetalet 错误:[Vue 警告]:创建钩子中的错误:“TypeError:this.$swal 不是函数”
- sql - 我们在 db2 中是否有条件插入或更新,就像我们在 sql 中的 if else 一样?