嗨,我想知道哪个是处理余烬数据中相关资源的最佳解决方案。为了构建一个 REST 后端。
1) 嵌入式资源
user: {
id: "foo",
albums: [
album: {
id: "foo",
name: "bar",
description: "foobar",
},
album: {
id: "foobar"
name: "foobarfoo",
description: "fumanchu",
},
],
}
2) 资源的嵌入式 ID
user: {
id: "foo",
albums: [
album: {
id: "foo",
},
album: {
id: "foobar"
},
],
}
3) 链接资源
user: {
id: "blabla",
links: {
"self": { "href": "/users/blabla" },
"albums": { "href": "/albums/blabla" }
},
}
你认为有可能像在HATEOAS中使用hipermedia吗?
提前致谢
你看过ActiveModelSerializers gem吗?
这是在服务器端使用 Rails 时完成工作的更简单方法。
对于关系,它可以嵌入或使用对子资源的引用。引用(我建议)以这种方式序列化:
{
users: [{
id: 42,
firstName: "John",
albums: [ 1, 2, 3 ]
}]
}
{
albums: [{
id: 1,
name: "Foo"
}, {
id: 2,
name: "Bar"
}, {
id: 3,
name: "Buzz"
}]
}
在这里,专辑也可以作为旁加载数据包含在第一个哈希中:
{
users: [{
id: 42,
firstName: "John",
albums: [ 1, 2, 3 ]
}],
albums: [{
id: 1,
name: "Foo"
...
}]
}