除“id”之外的REST路由标识符

时间:2013-07-16 21:12:36

标签: rest restful-url

我有一个资源'用户'。您可以通过以下方式请求有关特定用户的信息:

users/:id

其中'id'是一个数字。我还希望能够通过用户名查询用户。我想知道启用此功能的路线应该是什么?

我正在考虑将id设置为用户名和身份证,但是存在歧义,因为如果用户拥有包含所有号码的用户名并且该号码与其他用户的ID匹配,那该怎么办。

所以我要问的是,处理这个问题的惯例是什么?应该是:

usernames/:username

users/:username/username

还是完全不同的东西?

由于

2 个答案:

答案 0 :(得分:3)

就个人而言,我会通过url路由方法通过id获取用户:

/users/:id

并使用查询字符串按用户名获取用户:

/users?username=johndoe

答案 1 :(得分:0)

只是一个想法:“用户”空间可以划分为两个子空间:“用户名”和“ids”。

然后,可以单独访问它们:

/users/usernames/:username
/users/ids/:id 

“ids”空间的简写可能只是“/ users /”,它可以被访问:

/users/:id