4

Groupと呼ぶリソースを管理するRESTAPIを使用しているシナリオがあります。グループの概念は、Googleグループのディスカッションフォーラムに似ています。

これで、2つのGETアクセス方法があり、別々の表現が必要だと思います。

最初の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"
}

2番目のGETアクセス方法は、次のような本質的により統計的な要約情報を取得します。

{ 
    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

後者のみがグループに関する統計情報を返します。あなたはこのことについてどう思いますか ?

4

2 に答える 2

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: {
      [ ... ]
    }
}
于 2010-03-30T08:25:59.060 に答える
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"
}
于 2010-03-30T12:23:30.557 に答える