当谈到良好的RESTfull设置时,提供与所有者有关的结果作为请求者的最佳做法是什么,以及与想要其他用户拥有的数据的用户相关的结果。
我已经读过一个资源应该有最多2个基本URL,所以如何处理说, 获取经过身份验证的用户的所有项目 获取经过身份验证的用户的单个项目 获取特定用户的所有项目 获取特定用户的单个项目
答案 0 :(得分:1)
虽然您的问题有点不清楚,但在我看来,您可能会混淆“资源”,如HTTP资源,模型对象或数据库行。
这两者并不一定具有一对一的关系,甚至一对二的关系,因为你似乎意味着。您可以将多个“表单”中的数据库行公开为资源,只要这些信息在语义上不同,就可以聚合,转换或发布相同信息的次数没有限制。
所以,回到你的问题。您可以发布与经过身份验证的用户相关的资源,也可以仅发布可能还包含当前用户的用户。使用URI结构,例如:
/currentuser
/user/1
/user/2 <- might be the same as /currentuser
/user/3
...
最近还可能有一个用户列表:
/recentuser/444
/recentuser/445 <- might be again /currentuser
...
这将是同一个用户的第三个参考,但没关系,因为所有这些都有不同的含义,甚至可能有不同的表示形式(一个可能提供比其他人更多的信息)。