在RESTful和无状态方面使用/ currentUser等REST资源是否合法?

Woj*_*cki 6 rest restful-url

在RESTful和无状态方面,拥有类似资源是非常合法的

/用户/ 123

但是,问题是:拥有省略用户ID的资源并假设它在用户会话中在服务器上隐式解析是合法的吗?例如:

/ loggedUser

当具有标识符123的用户被授权时,该资源将指向/ users/123.

cas*_*lin 5

选择资源定位器

使用/me,/users/me,/users/myself,/users/current或类似的URI来识别对应于所述一个资源认证的用户从静止透视完全正常.根据Roy Thomas Fielding的论文,任何可以命名的信息都可以是一种资源:

5.2.1.1资源和资源标识符

REST中信息的关键抽象是一种资源.可以命名的任何信息都可以是资源:文档或图像,临时服务(例如"洛杉矶的今天天气"),其他资源的集合,非虚拟对象(例如人)等等.换句话说,任何可能是作者超文本引用目标的概念都必须符合资源的定义.资源是到一组实体的概念映射,而不是与任何特定时间点的映射相对应的实体.[...]

当使用上述的URI,则具有用于标识认证的用户,它总是识别的概念的的身份验证的用户,而不管哪个用户被认证.

无国籍约束

无状态的约束不相关的资源是如何确定的.无状态约束是关于不在服务器端存储任何会话状态.在这种方法中,从客户端到服务器的每个请求必须包含服务器要理解的所有必要信息.

请参阅Fielding的论文中的引用:

5.1.3无国籍

[...]从客户端到服务器的每个请求必须包含理解请求所需的所有信息,并且不能利用服务器上任何存储的上下文.因此,会话状态完全保留在客户端上.[...]

例如,在定位需要身份验证的受保护资源时,每个请求都必须包含要经过适当身份验证/授权的所有必需数据.


这里这里已经回答类似的问题.