我有以下层次结构:
venue -> concert -> booking
在预订中,我有音乐会的关系。但是预订是否也应该与场地有关?还是在这种深度建立关系是一种不好的做法?
如果预订中也有座位怎么办?与场地的关系是否仍然合理?
还是做两个请求来获得场地更好? 例如,使用预订 -> 演唱会关系来获取演唱会和场地之间的关系?
JSON:API 响应对象中的关系应与现实世界匹配。我认为预订和场地之间建立直接关系没有任何价值,如果这种关系实际上是通过音乐会。
您不需要直接关系来避免额外的请求。JSON:API 规范支持包含深度嵌套关系。
假设预订可从GET /bookings
终结点获得,客户端可以要求后端包含执行GET /bookings?include=concert.venue
请求的场地(假设关系在booking
上命名为concert
,在concert
上命名为venue
(。音乐会将被含蓄地包括在内。
有关旁加载相关数据的更多信息,请参阅 JSON:API 规范中的包含相关资源和复合文档章节。