什么是更好的?当 REST 端点查询实体时 - 一次返回所有实体和子实体,然后使用一些客户端代码(我们称之为“急切”模式)将它们显示在 UI 上,或者最好返回主要实体而不是它的子实体,返回这些子实体的 id,然后让 UI 照顾并为每个 id 发出正确的 REST 请求?(我们称之为lazy模式)。
所以要返回这个 JSON(这实际上不是一个有效的 JSON,只是留下 region: 前缀让你了解它是什么实体):
country: {
name: 'C1',
regions: [
region: {
id: 'I1'
name: 'R1',
area: 'A1'
},
region: {
id: 'I2'
name: 'R2',
area: 'A2'
},
]
}
Run Code Online (Sandbox Code Playgroud)
或这个 :
country: {
name: 'C1',
regions: ['I1','I2']
}
Run Code Online (Sandbox Code Playgroud)
进而:
GET /rest/region/I1
GET /rest/region/I2
Run Code Online (Sandbox Code Playgroud)
哪一个更好?什么时候使用哪个?谢谢
通常应该根据需要做出这样的决定,而不是试图预先设计一切。想想谁在使用你的服务(你提到它将从 UI 中使用)以及需求是什么。
UI 是否总是需要加载所有数据?如果是这样,那么延迟加载根本没有意义,只会增加客户端代码的复杂性。如果您遇到性能问题,或者如果您添加另一个不需要所有数据的 UI 页面,您始终可以稍后在另一个 URL 上实施“延迟加载”。
如果默认情况下 UI 仅显示“顶级数据”并且更详细的信息仅根据用户的某些输入有条件地显示,那么采用“懒惰模式”是有意义的,因为所有数据都是不是一直都需要。
本质上,在编写 API之前先编写UI 代码。这将告诉您哪种实现更有意义。
| 归档时间: |
|
| 查看次数: |
5264 次 |
| 最近记录: |