1

我目前有一个 API 端点,它返回一个对象数组,每个对象包含 4 个 JSON 格式的变量。

数据的大小范围从 500kb 到 5mb - 取决于记录的数量。为了减少返回的大小,我们正在考虑从对象中删除标签,并返回一个数组数组。

例如

[{propertyone:123,propertytwo:456,propertythree:789,propertyfour:012},等等等等]

会成为

[[123,456,789,012],等等,等等,等等]

然后,我们将记录数组位置 0 将被视为 propertyone 等。将来这个 API 可能会公开。将名称留在其中是否被认为是更好的做法,或者将提供具有强制订单的文档化 API 就足够了。

4

1 回答 1

1

有据可查的 API 通常是最好的 API。为您的 API 提供外部文档很重要,但您返回的数据也需要记录,没有什么比自记录数据更好的了。

我认为通过删除属性名称,您将完全失去这种自我记录,并且您将来也可能最终限制自己。例如,考虑只想返回部分数据,如果没有这些属性名称,您将如何表示它?

除了文档之外,如果您要返回 JSON,则取决于消费者的环境,提供这些属性可以为他们提供一个自然的模型来使用。以 JavaScript 为例,如果他们只是将您的响应解析为 JavaScript 对象,那么他们本质上就有一个免费实现的客户端模型,这将使​​使用您的 API 变得愉快。

尽管如此,速度很重要,我建议研究不同的措施来减少回报的规模。通常对此的常见解决方案是提供分页结果,如果客户端需要更多数据,则需要执行其他请求。此外,根据数据的形状,您可以通过对响应使用GZIP 压缩之类的简单方法受益匪浅。

在设计 API 时,只要你记录它并且它按照描述的那样工作,通常任何东西都足够了。然而,赋予消费者权力的 API 才是成功的。

于 2013-02-04T21:18:32.277 回答