这是一个后续问题this one https://stackoverflow.com/questions/2671582/rest-caching-and-authorizing-with-multiple-user-roles.
那么对任何给定的 URI 拥有唯一的响应是 RESTful 架构的核心租户吗?这里的很多讨论都倾向于这个方向,但我还没有在任何地方将其视为“硬性且快速”的规则。
我理解它的价值(用于缓存、爬行、传递链接等),但我也看到诸如 twitter API 之类的东西违反了它(请求http://api.twitter.com/1/statuses/friends_timeline.xml
会根据给定的用户名而变化),我知道有时可能有必要——更不用说按时间顺序分页的资源也会随着新元素的添加而改变。
我是否应该努力完全消除来自同一 URI 的不同响应,或者我是否只是接受有时这是不切实际的,只要我尽量减少它的出现,我就会处于良好状态。
不是相同的响应,而是一个表示(取决于 conneg 和条件请求标头)相同的资源。在 Rest 架构中,一个 URI 标识一个且仅一个资源(但一个资源可以有多个 URI)。根据授权用户(HTTP Auth、cookies 等)提供不同的资源是不好的做法,因为相同的 URI 代表每个用户不同的资源,如 Twitter 示例中所示。我无法允许您查看我的时间线并为您提供 URI,因为这与your时间线。用户必须在 URI 中进行编码,并且访问受到授权机制的限制。要让单个访问点根据经过身份验证的用户提供不同的资源,请使用重定向(例如 303 See Other、302 Found,...)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)