json - 我应该在 GET 响应中返回对象 ID 还是整个对象实体?
问题描述
例如,假设我有事件和每个事件的位置。关于如何设计 API 响应,我可以想到几个选项:
GET /events/1
- 返回位置的 ID
{
id: 1,
name: Event name,
location: 1
}
- 返回整个位置对象
{
id: 1,
name: Event name,
location: {
id: 1,
name: Location Name
}
}
现在,我不喜欢选项 1,因为如果需要,客户端必须再次查询以检索位置数据。我查看了其他一些公共 API,发现其中一些是这样做的:
GET /events/1?expand=location
这将扩展位置对象,如果没有,它只会返回对象。我喜欢这个,而且看起来不错。
GET /events/1?fields=name
{
name: Event name
}
所以在这里,标准是返回位置对象和所有其他字段,但他们可以指定他们想要的字段。因此,如果需要位置,他们可以将其添加到字段参数中,或者如果需要所有内容,则不添加参数。
哪个是最佳实践,使用扩展还是使用字段?
两者都达到了我想要的效果,但是默认情况下 expand 仍会返回不必要的字段。但是,使用字段意味着它需要不断询问所有需要的字段,并且我不确定这是否会在服务器中花费更多时间。
解决方案
推荐阅读
- java - 重复生成一个从 0 到 30 的随机数,直到总共达到 200 或更多
- java - Eclipse 一直抱怨抽象类 - JDK 9 问题?
- python - 如何通过python中的套接字发送文件
- angular - angular 4 observable.create 不工作
- unity3d - Unity中如何提高UI按钮的灵敏度
- node.js - Mongoose 5.0.16,获取无法读取未定义的属性“替换”
- jenkins - Jenkins 从其他仓库访问文件
- python - 依赖于 numpy 中 2 个数组的函数的矢量化
- c - 如何从文本文件 (C) 中读取特定数据?
- python - 如何合并两个字符串?- Python