什么是REST API和用户角色设计最佳实践?

时间:2017-06-14 11:42:12

标签: java rest api grails

我正在开发Grails REST应用程序。我有三个用户角色:BusinessOwner,User,Admin,Public(Not Authentication)

我有像api/business/1这样的端点。

当具有BusinessOwner角色的用户调用该属性时,它会返回业务的所有详细信息,但如果具有公共(非身份验证)角色的用户调用该业务,则会返回详细信息的子集。 所以问题是如何实现端点:

1-拥有一个端点,如api/business/1并检查用户角色是什么,并返回正确的值(若干if / else语句,......)

OR

2-具有单独的API区域,如下所示,每个区域都有自己的特定安全性并返回特定的子集:

api/admin/business/1

api/businessOwner/business/1

api/public/business/1

哪一个更好?和

设计REST API和应用用户角色的最佳做法是什么?

1 个答案:

答案 0 :(得分:2)

身份验证和授权

我认为网址不应根据授权规定或以其他方式分隔网络服务。对于格式良好的RESTful服务,应在HTTP标头中发送令牌(如OAuth 2.0中所示)。

大多数成熟的RESTful框架都内置了授权流程。据我所知,它们都没有为与授权机制相同的服务实现不同的URL