在REST API中,在身份验证之后,用户会收到一个AccessToken,然后随每个请求一起发送。在服务器端,令牌被映射到该用户的UserID。
假设我像这样解决消息资源:
GET /user/123/messages
VS。以这种方式访问它:
GET /messages/
并从AccessToken标题中提取UserID。
哪种方式更RESTful?我倾向于第一个 - 它似乎更具可读性和可缓存性,但是还有其他原因吗?
答案 0 :(得分:1)
第一个标识唯一的资源,第二个不标识。如果第二个URI的含义取决于附加信息(会话令牌),则它不会识别任何内容。所以只有第一种方法是RESTful。
答案 1 :(得分:0)
如果用户456让你第一次得到......你会回来什么?如果你的第二个....?我发现我的世界是“重新”,我的服务对每个用户都是幂等的。一旦身份验证发生,我将用户身份放入http会话(tomcat免费提供给我)并使用/ messages和/ messages / 99999等服务。服务impl然后说“在会话中找到用户拥有的消息XXXX。重要的是不将会话中的其余数据存储在用户所在的位置。比cookie更容易... imho