比方说,我正在开发一个Rails后端用作API相同的资源。我有一个Book
模型,其中has_many
Reviews
。每个这样的Reviews
has_many
Photos
和belongs_to
一个User
。要了解我要去的内容,请查看酒店评论网站,其中有来自酒店和用户的图片。但是,在画廊旁边,您还可以找到用户的单独评论,其中包含一些照片。目前我JSON响应看看这个:JSON API设计:包括在多个地方
{
book: {
id: 1,
star_rating: 5
original_images: []
},
reviews: [
{
id: 1,
title: "great book",
photos: [
{
url: "http://foobar.gov",
caption: "hi"
},
{
url: "www.hello.world",
caption: "hi"
}
],
user: {
name: "Fred"
}
},
{
id: 2,
..etc
}
我的困境:我的应用程序的前端,我希望能够循环通过审查,并显示审查数据+审查的照片,所以做这样的事情review.user
, review.title
和review.photos
在一个循环将是伟大的,并与我目前的数据结构。另一方面,当我想要展示一个画廊时,如果我在与original_images
相同的结构层次上有一个阵列,它将包含所有的URL,对我来说更容易。但是,如果我这样做,当我想显示只一个具体的审查的照片,我会基本上做一个巨型大小的数组中进行搜索,并挑选出属于那个特定的审查图像。
我的问题:我应该包括在多个地方的照片?无论他们现在在哪里,还可以在一个大阵中作为original_images
的兄弟姐妹?