json响应可以部分分页吗?

时间:2015-07-01 14:42:12

标签: ruby-on-rails json pagination json-api

我想知道json是否可以部分分页。

例如

{
  "data": [{
    "type": "articles",
    "id": "1",
    "attributes": {
      "title": "JSON API paints my bikeshed!",
      "body": "The shortest article. Ever."
    }
  }],
  "included": [
    {
      "type": "people",
      "id": 42,
      "attributes": {
        "name": "John"
      }
    },
    {
      ...annnd 80000 others
      }
    }
  ]
}

included哪里有太多元素(例如80.000),而不是我们需要分页? 但如果它是分页,我们继续下一页只会更改included元素,json仍会返回data.articles。

这是正确的行为吗?

第一个提案:

{
  "data": [{
    "type": "articles",
      "id": "1",
      "attributes": {
        "title": "JSON API paints my bikeshed!",
        "body": "The shortest article. Ever."
      },
      "relationships": {
        "users": {
          "link": "https://website.com/api/v1/articles/1/users.json"
        }
      }
  }]
}

1 个答案:

答案 0 :(得分:2)

要符合JSON API规范,您的复合文档必须遵守full linkage requirement。必须通过关系数据识别任何包含的资源。

在您的示例中,您可以通过在data关系下添加users成员来实现此目的。然后,您可以链接到每个包含的人。

如果关系数据是部分集,则可以使用pagination links within the relationship object