2016-08-04 98 views
0

我正在構建一個REST API。我期望解決的一個問題的簡單示例涉及2個域實體:posts &評論。目前,對http://myapidomain.com/posts的GET請求返回一個帖子集合,其中每個帖子都包含對此特定帖子的評論鏈接。我還會允許在響應中擴展評論鏈接的可能性,以便評論列表按行顯示,而不是指向它們的網址。每種方法都有優點和缺點,但包含兩種選擇的很好理由。嵌套資源是否需要分頁?

我的問題是說例如我的GET請求/ posts會返回一個分頁列表(例如頁面大小爲10),其中包含註釋列表而不僅僅是一個鏈接......我需要分頁嵌套的資源嗎?我擔心一個帖子可以有無限次的評論,因此,一個10帖子的列表可能有一個或多個帖子,對於一個帖子有多個評論100秒。那麼內部/嵌套資源是否也需要分頁,或者是否有一些標準方法來處理這種情況?

回答

1

包含收集子資源的鏈接是一種很好的做法。如果客戶端需要收集,則可以執行對鏈接的新請求。

但是,如果由於某種原因,您需要爲每篇文章預先加載一些評論,我會考慮僅包括評論的第一頁並提供加載下一頁的鏈接。

{ 
    "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" 
    } 
}