【发布时间】:2020-03-30 08:55:00
【问题描述】:
我有以下层次结构:
venue -> concert -> booking
在预订期间,我与音乐会有关系。但是预订也应该与场地有关系吗?或者在那种深度建立关系是不好的做法?
如果预订中也有座位怎么办?与场地的关系仍然合理吗?
或者最好是通过两次请求来获得场地?例如。使用预订 -> 音乐会关系,然后得到音乐会和场地的关系?
【问题讨论】:
标签: json api design-patterns json-api
我有以下层次结构:
venue -> concert -> booking
在预订期间,我与音乐会有关系。但是预订也应该与场地有关系吗?或者在那种深度建立关系是不好的做法?
如果预订中也有座位怎么办?与场地的关系仍然合理吗?
或者最好是通过两次请求来获得场地?例如。使用预订 -> 音乐会关系,然后得到音乐会和场地的关系?
【问题讨论】:
标签: json api design-patterns json-api
您的 JSON:API 响应对象中的关系应该与现实世界相匹配。我认为 booking 和 venue 之间的直接关系没有任何价值,如果这种关系是通过 concert 在现实中进行的。
您无需直接关系即可避免额外请求。 JSON:API 规范支持包含深度嵌套的关系。
假设预订可从 GET /bookings 端点获得,客户端可以要求后端包含 venues 执行 GET /bookings?include=concert.venue 请求(假设关系在 @987654326 上命名为 concert @ 和 venue 在 concert)。音乐会将被隐式包含在内。
请在 JSON:API 规范中的Inclusion of Related Resources 和Compound Documents 章节中找到有关侧载相关数据的更多信息。
【讨论】: