2017-06-14 83 views
0

我正在开发一个Grails REST应用程序。我有三个用户角色:BusinessOwner,用户,管理员,公共(未验证)什么是REST API和用户角色设计最佳实践?

我已经喜欢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和应用用户角色的最佳做法是什么?

+0

选项1.这将允许在可用角色的变化容易vs选项2。 – bassmartin

回答

0

身份验证和授权

我认为一个URL的不应该规定或根据授权,否则单独的Web服务。对于格式良好的RESTful服务,令牌应该在HTTP头中发送(如OAuth 2.0中所发生的)。

大多数成熟的基于REST框架将内置有一个授权流程。据我所知,他们没有实现不同的URL相同的服务作为授权机制

相关问题