2012-04-02 364 views
1

我開始實施REST API。我有一個請求使用多個條目的資源。爲了實現分頁,我喜歡Github選擇實現它。如果我們通過鏈接頭使用分頁,如何返回我們的JSON API中的總條目

我定義了一個HTTP Header Link,我添加了下一個/上一個/第一個/最後一個鏈接。

Link: <https://api.github.com/repos?page=3&per_page=100>; rel="next", 
    <https://api.github.com/repos?page=50&per_page=100>; rel="last" 

在我的身體只有我的項目,沒有別的。但現在我想知道總共有多少條目。我無法在頁面數量和頁面數量之間進行乘法運算,因爲結果不準確。

那麼我該如何將這個數字返回給條目?我想在我的回答X-total-entries中添加一個新的HTTP標題。但我不知道是否有更好的技術。

回答

0

當我嘗試決定是將某些數據放入標題還是放入正文中時,我會問自己它是否是應用程序或協議的功能?在你的情況下,分頁是應用程序的一個功能?用戶是否知道他在看什麼頁面?顯示給用戶的項目總數是多少?如果答案是肯定的,那麼我會將這些信息放入正文中。然後,主體不僅僅是一個項目列表,而是一個頁面的表示,以及顯示它所需的所有信息和控件。只有當分頁是內部協議細節時,我纔會考慮將鏈接和項目計數放入標題中。我知道這聽起來可能是一種相當抽象的思維方式,但如果分頁細節需要一直泡到應用程序的頂部,那麼將這些信息與主體分離並放入標題中幾乎沒有什麼實際益處。

相關問題