【发布时间】:2017-06-14 11:42:11
【问题描述】:
我正在开发一个 Grails REST 应用程序。我有三个用户角色:BusinessOwner、User、Admin、Public(非身份验证)
我有像api/business/1 这样的端点。
当具有 BusinessOwner 角色的用户调用它时,它会返回业务的所有详细信息,但如果具有公共(非身份验证)角色的用户调用它,它会返回详细信息的子集。 所以问题是如何实现端点:
1- 拥有一个类似api/business/1 的端点并检查用户角色是什么并返回正确的值(几个 if/else 语句,....)
或
2- 具有单独的 API 区域,如下所示,每个区域都有自己的特定安全性并返回特定子集:
api/admin/business/1
api/businessOwner/business/1
api/public/business/1
哪个更好?和
设计 REST API 和应用用户角色的最佳做法是什么?
【问题讨论】:
-
选项 1。与选项 2 相比,这将允许轻松更改可用角色。