嵌套资源也需要分页吗?

Do nested resources need to be paged too?

我正在构建 REST api。我要解决的一个简单问题示例涉及 2 个域实体:posts 和评论。当前对 http://myapidomain.com/posts returns post 集合的 GET 请求,其中每个 post 包含一个 link 来评论这个特定的 post。我还将允许在响应中扩展评论 link,以便评论列表显示在一行中,而不是 url 指向它们。每种方法都有利弊,但有充分的理由包括这两种选择。

我的问题是,例如我对 /posts returns 的 posts 分页列表(例如,页面大小为 10)的 GET 请求,其中包含评论列表,而不仅仅是 link...我是否也需要对嵌套资源进行分页?我担心单个 post 可以有无限数量的评论,因此 10 个 post 的列表可能有一个或多个 post 有很多 100 条评论一个 post。那么内部/嵌套资源是否也需要分页,或者是否有一些标准的方法来处理这种情况?

为集合子资源包含一个 link 是一个很好的做法。如果客户端需要采集,可以向link发起新的请求。

但是,如果出于某种原因,您需要为每个 post 预加载一些评论,我会考虑仅包含评论的第一页并提供 link 以加载下一页。

{
  "data": [
    {
      "id": 1,
      "title": "It's a post",
      "content": "Lorem ipsum dolor sit amet, consectetur adipiscing elit...",
      "comments": {
        "data": [
          {
            "content": "It's a comment",
            "author": "John Doe"
          },
          {
            "content": "It's comment",
            "author": "Jane Doe"
          },
          ...
        ],
        "paging": {
          "next": "http://api.example.com/posts/1/comments?page=2&size=10"
        }
      }
    },
    ...
  ],
  "paging": {
    "previous": "http://api.example.com/posts?page=1&size=10",
    "next": "http://api.example.com/posts?page=3&size=10"
  }
}