2010-03-30 55 views
3

我有一個場景,我有REST API管理資源,我們將調用組。 一個組在概念上與Google Groups中的論壇類似。REST API設計檢索摘要信息

現在我有兩個GET訪問方法,我認爲需要單獨的表示。

第1個GET訪問方法檢索有關組的最小信息量。 給定GROUP_ID它應該返回的最少量信息像

{ 
    group_id: "5t7yu8i9io0op", 
    group_name: "Android Developers", 
    is_moderated: true, 
    number_of_users: 34, 
    new_messages: 5, 
    icon: "http://boo.com/pic.png" 
} 

第二屆GET訪問方法retrives這是更統計在性質上類似的摘要信息:我想分離這些

{ 
    group_id: "5t7yu8i9io0op", 
    top_ranking_users: { 
     [ { user: "george", posts: 789, rank: 1 }, 
     { user: "joel", posts: 560, rank: 2 } ...] 
    }, 
    popular_topics: { 
     [ ... ] 
    } 
} 

數據訪問方法和我目前正在計劃這種設計:

GET /group/:group_id/ 
GET /group/:group_id/stat 

只有第後者將返回有關該組的統計信息。你怎麼看待這件事 ?

回答

5

我沒有看到你的方法有問題。由於統計數據基本上都是單獨的數據,你可以治療的統計數據作爲一個單獨的資源,也提供了一個URI像

GET /stat/:group_id 

此外,您可以交叉引用您的資源(意義的一組鏈接到相應的統計資源和副反之亦然):

GET /group/5t7yu8i9io0op 

{ 
    group_id: "5t7yu8i9io0op", 
    group_name: "Android Developers", 
    is_moderated: true, 
    number_of_users: 34, 
    new_messages: 5, 
    icon: "http://boo.com/pic.png", 
    stats: "http://mydomain.com/stat/5t7yu8i9io0op" 
} 

GET /stat/5t7yu8i9io0op 

{ 
    group: "http://mydomain.com/group/5t7yu8i9io0op", 
    top_ranking_users: { 
     [ { user: "george", posts: 789, rank: 1 }, 
     { user: "joel", posts: 560, rank: 2 } ...] 
    }, 
    popular_topics: { 
     [ ... ] 
    } 
} 
4

如果你嵌入的鏈接在小組彙總的統計數據會是什麼更妙的是:

{ 
    group_id: "5t7yu8i9io0op", 
    group_name: "Android Developers", 
    is_moderated: true, 
    number_of_users: 34, 
    new_messages: 5, 
    icon: "http://boo.com/pic.png" 
    stats_link : "http://whatever.who/cares" 
}