0

我需要提供有关多对多关系的 REST 数据。我一直在玩 web2py 的可爱 parse_as_rest 功能,但不能完全让多对多的东西工作。

例如,让我们以标准用户和组为例。

表:

  1. 用户
    • ID
    • 用户名
  2. 团体
    • ID
    • 团队名字
  3. 会员资格
    • ID
    • 用户身份
    • group_id

我需要使用什么模式来提供一个 url,它将为我提供用户所属的所有 group_name?

patterns = [
"/user[user]",
"/user[user]/id/{user.id}",
"/user[user]/id/{user.id}/membership[membership.user_id]",

# This is the line that I can't make yet:
#"/user[user]/id/{user.id}/membership[membership.user_id]/group<WHAT GOES HERE>",

"/group[group]",
"/group[group]/id/{group.id}",
]
parser = db.parse_as_rest(patterns, args, vars)

使用上面未注释的行,我可以访问这些网址:

  1. .../用户
  2. .../用户/ID/1
  3. .../user/id/1/membership
  4. .../团体
  5. .../group/id/3

URL #3 显示了我所有的成员资格,然后我可以对 URL #5 进行多次单独调用以获取 group_name 值,但必须有一种方法可以通过一次调用来完成此操作。

帮助我 StackOverflow!你是我唯一的希望。

编辑:修复了错误的剪切和粘贴。

4

1 回答 1

0

这个问题在谷歌搜索该主题的顶部。

只需开始从多对多表构建查询。

/user[membership]/id/{membership.user_id}/groups[group.id]

对于此请求,您实际上并不需要“用户”表。

然后请求“/user/id/22/groups”将为您提供所有组,而不仅仅是他们的 ID。

于 2013-07-22T22:19:30.587 回答