MVC Web Api以RESTful方式区分用户和公共数据

时间:2016-02-11 15:05:00

标签: asp.net-mvc rest asp.net-web-api2

当谈到良好的RESTfull设置时,提供与所有者有关的结果作为请求者的最佳做法是什么,以及与想要其他用户拥有的数据的用户相关的结果。

我已经读过一个资源应该有最多2个基本URL,所以如何处理说, 获取经过身份验证的用户的所有项目 获取经过身份验证的用户的单个项目 获取特定用户的所有项目 获取特定用户的单个项目

1 个答案:

答案 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
...

这将是同一个用户的第三个参考,但没关系,因为所有这些都有不同的含义,甚至可能有不同的表示形式(一个可能提供比其他人更多的信息)。