哪个URL描述资源最好?

时间:2011-09-02 18:58:17

标签: http url rest uri

/competitions/1/clubs/5/players
/players/search?club_id=5
/players?club_id=5

我应该何时使用资源的第一类网址,何时应使用嵌套网址?

更新1

感谢目前为止的答案。我会尝试进一步澄清事情。

竞争与俱乐部有着多对多的关系。俱乐部可以参加多个比赛。我想这会让Club成为一流的实体,所以进入俱乐部的方式就是:

/clubs/33

但我也需要能够参加参加特定比赛的俱乐部,所以我也需要这样的东西:

/competitions/2/clubs

但有人提到不建议通过多个URI访问资源。这不违反吗?

另外,我认为这样的URI不是更好的选择:

/competitions/2/clubs/33/players/5

而是使用它:

/clubs/33/players/5

Club与玩家有一对多的关系。

3 个答案:

答案 0 :(得分:1)

/competitions/1/clubs/5/players

由于URI是单个资源的标识符,我会说一般规则是如果它是一个对象,它会得到一个“第一类URL”。

我只倾向于在限制/过滤列表时使用查询参数,例如/competitions/1/clubs/5/players?gender=MALE

答案 1 :(得分:0)

答案 2 :(得分:0)

我不会在网址中输入身份证号码。它们只对那些真正知道它们意味着什么的人有意义,但对于其他人来说,它们都是毫无意义的数字。

您应始终为您的网址选择描述性和相关字词,因为该网址会提供有关链接资源的信息。

不要使用无意义的ID号,而是选择一个代表团队名称或竞争对手的唯一名称,例如

/competitions/worldcup/clubs/usa/players

但是如果你真的需要在URL中发送那种匿名数据,那么我宁愿在查询中看到它们。

仅为URL使用有意义的文字。