MVC Web Api 在 RESTful 方法中区分用户和 public 数据
MVC Web Api Differentiate between user and public data in RESTful approach
当涉及到良好的 RESTfull 设置时,提供与作为请求者的所有者相关的结果以及与想要由另一个用户拥有的数据的用户相关的结果的最佳实践是什么。
我读到一个资源应该有最多 2 个基本 URL,所以如何处理说,
获取经过身份验证的用户的所有项目
为经过身份验证的用户获取单个项目
获取特定用户的所有项目
为特定用户获取单个项目
虽然您的问题有点不清楚,但在我看来您可能会混淆 "Resources" HTTP 资源、模型对象或数据库行。
两者不一定是一对一的关系,甚至也不一定像你说的那样是一对二的关系。您可以在多个 "forms" 中公开一个数据库行作为资源,您可以聚合、转换或发布相同信息的次数没有限制,只要它们在语义上都是不同的。
所以,回到你的问题。您可以发布与经过身份验证的用户有关的资源,也可以仅发布独立的用户,其中可能还包含当前用户。例如,使用这样的 URI 结构:
/currentuser
/user/1
/user/2 <- might be the same as /currentuser
/user/3
...
也可能有最近登录的用户列表:
/recentuser/444
/recentuser/445 <- might be again /currentuser
...
这将是对同一用户的第三次引用,但没关系,因为所有这些都有不同的含义,甚至可能提供不同的表示(一个可能提供的信息比其他的更多)。
当涉及到良好的 RESTfull 设置时,提供与作为请求者的所有者相关的结果以及与想要由另一个用户拥有的数据的用户相关的结果的最佳实践是什么。
我读到一个资源应该有最多 2 个基本 URL,所以如何处理说, 获取经过身份验证的用户的所有项目 为经过身份验证的用户获取单个项目 获取特定用户的所有项目 为特定用户获取单个项目
虽然您的问题有点不清楚,但在我看来您可能会混淆 "Resources" HTTP 资源、模型对象或数据库行。
两者不一定是一对一的关系,甚至也不一定像你说的那样是一对二的关系。您可以在多个 "forms" 中公开一个数据库行作为资源,您可以聚合、转换或发布相同信息的次数没有限制,只要它们在语义上都是不同的。
所以,回到你的问题。您可以发布与经过身份验证的用户有关的资源,也可以仅发布独立的用户,其中可能还包含当前用户。例如,使用这样的 URI 结构:
/currentuser
/user/1
/user/2 <- might be the same as /currentuser
/user/3
...
也可能有最近登录的用户列表:
/recentuser/444
/recentuser/445 <- might be again /currentuser
...
这将是对同一用户的第三次引用,但没关系,因为所有这些都有不同的含义,甚至可能提供不同的表示(一个可能提供的信息比其他的更多)。