0

这可能是显而易见的问题,但是我没有看到任何文档直接解决骨干如何从 REST API 源格式化 JSON。

理想情况下,我想通过在帖子中包含一些最近的评论来减少 API 调用的数量。

例如

假设我正在检索 404 号帖子。使用 GET 来http://api.example.com/v1/posts/404.json使用.get(404)

我认为嵌套的 JSON 会很方便/干净:

{
    "id": 404,
    "title": "Hans shot first.",
    "comments": [
      {
        "id": 4041,
        "body": "But not anymore!"
      },
      {
        "id": 4042,
      "body": "Indeed he did."
      }
    ]
}

Ember.js 似乎更喜欢使用关系 ID。来源Backbone.js 是否喜欢类似的?

{
  "post": {
    "id": 404,
    "title": "Hans shot first.",
    "comment_ids": [4041, 4042]
  },

  "comments": [{
    "id": 4041,
    "body": "But not anymore!"
  },
  {
    "id": 4042,
    "body": "Indeed he did."
  }]
}

我在Backbone.js restful json API designBackbone.js & REST API resources relationship & interraction等中找到了相关的帖子。然而,他们缺乏实际内部 JSON 结构建议的示例。骨干基础

4

2 回答 2

1

我不相信 Backbone.js 有任何偏好。JSON 的结构方式完全由您决定。如果您不希望评论数据超过帖子的其余数据,则第一个示例效果很好。但是,如果您正在制作类似 Reddit 的评论数量超过整个帖子正文中的字符数量的内容,那么使用关系结构会更加友好。

Backbone.js 并不关心你如何构建数据,因为它完全由你来解析和呈现数据。因此,请选择适合您手头任务需求的结构。

在第一个示例中我要更改的一件事是删除无意义的“post”对象包装器:

{
    "id": 404,
    "title": "Hans shot first.",
    "comments": [
      {
        "id": 4041,
        "body": "But not anymore!"
      },
      {
        "id": 4042,
      "body": "Indeed he did."
      }
    ]
}
于 2013-08-12T20:59:03.567 回答
0

在主干中,目前我会推荐使用单个对象或对象集合。对于上面的示例,我建议分别获取帖子和评论集合。如果你想使用上面提到的 JSON,我认为你应该使用骨干关系(http://backbonerelational.org/)来解决完全相同的问题。

于 2013-08-13T13:35:28.363 回答