【发布时间】:2012-05-01 20:02:18
【问题描述】:
假设一个用户 (/users/{id}) 有一个名称和多个位置 (/users/{id}/locations)。
当我请求用户 (/user/{id}) 时,应该完整地表示该用户(其 ID、名称和位置)还是应该仅在单独的请求中返回位置?例如,对于 id=123 (/users/123) 的用户的请求,您希望使用哪个 JSON DTO:
1) { "id":123, "name":"Peter", "locations":[{"id":1, "name":"Chicago"}, {"id":2, "name ":"纽约"}] }
2) { "id":123, "name":"Peter", "locations":[{"id":1}, {"id":2}] }
3) { "id":123, "name":"Peter", "locations":[1, 2] }
4) { "id":123, "name":"Peter" }
这是否更主观,在 DTO 的大小和典型用例中所需的请求之间推拉?我倾向于简单地包含所有相关数据 (1),但我不确定这是否比仅要求开发人员多次调用 API 以获取他们实际的所有数据更好想要。
【问题讨论】:
-
您为什么不添加查询参数来打开/关闭列出子元素集合?这与添加 ?format={json|xhtml} 来调整输出格式没有什么不同...
-
主要是因为开发时间;我不想引入意外或不必要的添加。我只想做“正确”的事情,或者至少以合理、快速的方式。
标签: json web-services rest dto saas