我有一个REST API,允许开发人员获取某个资源:
/api/projects
/api/project/4
...
API需要身份验证。身份验证令牌已添加到HTTP标头中。
基于哪个用户通过身份验证返回不同的输出是否RESTful?
谢谢!
答案 0 :(得分:2)
REST没有在这方面定义任何东西。
您应该保持认证逻辑和授权逻辑独立于您的RESTful架构。
确实需要根据不同的属性/参数更改返回的内容,例如:
您可以通过在REST服务前使用过滤器来实现此目的。过滤器/拦截器的解释为here。
然后,您将向决策点发送授权请求,该决策点根据用户的身份(或其他属性)确定可以返回的内容。
例如,当且仅当它们属于同一区域时,您可以有一个逻辑将项目返回给用户。 REST端点仍然是/ api / projects,但返回的内容将根据authZ逻辑而有所不同。看看XACML和ALFA来实现该层。
HTH