0

こんにちは、ember-data の関連リソースを操作するための最適なソリューションはどれか疑問に思っています。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 のようにハイパーメディアを使用することは可能だと思いますか?

前もって感謝します

4

1 に答える 1

1

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"
  ...
  }]
}
于 2012-09-17T13:09:30.053 に答える