javascript - 为什么我通常会在“容器”数据类型中看到数据,例如对象内部的对象和对象内部的数组?
问题描述
我几乎没有实际的编程经验,但是当我深入研究实际编码人员的数据时,我经常遇到这样的事情,我不明白为什么......
(来自我这个周末在 javascript 中工作的小曲)
{
"data": [
{
"name": "foo",
"id": 0
},
{
"name": "bar",
"id": 1
},
{
"name": "baz",
"id": 2
},
]
};
这是一个具有单个键:值的对象,其中键是“数据”,值是一个数组,数组是一个对象列表,其中每个对象是一个名称和一个 ID。
在我看来,这里至少有一个额外的抽象层。为什么不只有对象数组?为什么外部对象只有一个元素?我认为这一定是有充分理由的,但似乎它只是让访问其中的数据变得更加困难。
解决方案
GET /users
假设您的一个编码人员实现了返回一组用户的端点
[
{ id: 0, name: 'foo' },
{ id: 1, name: 'bar' },
{ id: 2, name: 'baz' },
] // <- the response body of GET /users
这在一段时间内是好的。然后,您的用户群开始变大,并且您意识到必须开始对端点进行分页limit
并offset
避免客户端过载。你将如何跟踪最后一个offset
?
您通常会找到类似于示例中的响应有效负载以允许这样做:
{
"data": [
{
"name": "foo",
"id": 0
},
{
"name": "bar",
"id": 1
},
{
"name": "baz",
"id": 2
},
],
offset: 200
};
然后,您可以毫无顾虑地扩展您的用户群。
推荐阅读
- javascript - 动态添加新行时下拉菜单不显示 JSON 数组
- python - TypeError:“str”对象不可调用 Flask Redirect
- google-api - 使用 API 对 oAuth 2 的其他电子邮件地址进行 Google Drive 共享访问
- android - 尝试使用 API 注册时,网络请求在 react-native 中失败
- javascript - 为什么 0x80000000 & 0x80000000 低然后 0
- angular - Angular ngOnInit() 和 ngOnChanges() 有什么区别?
- git - 如果主分支自另一个分支分歧以来没有已知的提交,我如何更新主分支以指向另一个分支的尖端?
- angular - Subject 的 Angular5 数据更改不会呈现 Route
- matplotlib - 如何仅重绘使用 matplotlib 更改的图像区域
- nginx - 如何正确指向 Dns 和管理 Nginx 重定向