REST - 维持“相同结果”与特定于用户的结果

时间:2012-09-04 08:27:04

标签: rest get

在REST API中,在身份验证之后,用户会收到一个AccessToken,然后随每个请求一起发送。在服务器端,令牌被映射到该用户的UserID。

假设我像这样解决消息资源:

GET /user/123/messages

VS。以这种方式访问​​它:

GET /messages/

并从AccessToken标题中提取UserID。

哪种方式更RESTful?我倾向于第一个 - 它似乎更具可读性和可缓存性,但是还有其他原因吗?

2 个答案:

答案 0 :(得分:1)

第一个标识唯一的资源,第二个不标识。如果第二个URI的含义取决于附加信息(会话令牌),则它不会识别任何内容。所以只有第一种方法是RESTful。

答案 1 :(得分:0)

如果用户456让你第一次得到......你会回来什么?如果你的第二个....?我发现我的世界是“重新”,我的服务对每个用户都是幂等的。一旦身份验证发生,我将用户身份放入http会话(tomcat免费提供给我)并使用/ messages和/ messages / 99999等服务。服务impl然后说“在会话中找到用户拥有的消息XXXX。重要的是不将会话中的其余数据存储在用户所在的位置。比cookie更容易... imho