最终用户和管理人员都有很多兼容的API。我将使用偏好并举两个例子:
显然这会导致重复。当然,我只能使用' / users / {user} / preferences'对于最终用户和管理员,但最终我遇到了其他问题:
1)此人需要在每次通话中输入用户ID,这很笨拙。
2)安全性现在将成为一个问题,因为后端需要确保正确管理每个请求,即恶意的人不能输入其他人的ID并检索他们的偏好。
这里最好的模式是什么?
答案 0 :(得分:0)
一个选项是让/user/preferences
为管理员调用选择?userid=
参数。然后,您可以使用基于admin == true && args[userid]
的相同端点和分支。
代理api端点的注释也很好,而不太具体的调用(/user/preferences
)会调用更具体的端点(/user/{userid}/preferences
)。
两者都是不错的选择。很多人将所有管理员调用放在/admin/...
下并添加处理程序以验证调用者实际上是管理员,然后再路由到常规调用(/admin/users/preferences
- >验证is_admin - > {{1 }})。