假设我有以下端点:
/accounts (公司/业务部门)
/vehicles (轿车、卡车等)
/users (登录用户)
用户可以拥有3种不同的权限:全局管理、帐户管理和用户。
如果用户以下列方式访问车辆:
但是,如果一个帐户管理员访问/vehicles,他可能只想要自己的车辆,如果一个全球管理员只想在他自己的相关帐户上的车辆。然后呢?
一个示例解决方案:
/accounts/{accountId}/vehicles (全球管理)
/accounts/current/vehicles (帐户管理)
/vehicles (供用户使用)
或…
/accounts/{accountId}/vehicles (用于全球管理)
/vehicles/byUserAccount/{accountId} (帐户管理)
/vehicles (供用户使用)
或…
/vehicles/byEntireAccount/{accountId} (全球管理)
/vehicles/byUserAccount/{accountId} (帐户管理)
/vehicles (供用户使用)
对于这个案子,有什么最佳的做法或好的建议吗?
希望这个问题有意义。
发布于 2014-09-08 12:13:32
如果要实现这一点,我将只创建一个端点来访问vehicles (/vehicles/),并使全局用户和帐户管理员用户能够发送一个可选的GET param来指示他们还想要什么。他们可以发送AllGlobal或AllAccount来指示它。当然,在返回数据之前,我也会根据代码中的请求检查他们的权限。
在无味中实现这一点是非常容易的。
发布于 2014-09-08 20:53:31
你不需要对此做任何事。只需列出实际用户可以在同一个端点上看到的安全级别的内容,仅此而已.
更详细的是:
/vehicles/,它可以列出实际用户可以看到的车辆。/account/{id}/vehicles/,它可以列出与特定用户相关的车辆。注意:根据REST的https://stackoverflow.com/questions/25611167/do-i-need-oauth2-for-my-web-apps-api,在您的情况下,您必须在每个请求中发送足够的信息来验证用户的身份,并且您不能拥有服务器端会话存储.
https://stackoverflow.com/questions/25723777
复制相似问题