这是对这个问题的一个后续问题.
那么对于任何给定的URI,RESTful架构的核心租户是否有独特的响应?这里有很多讨论倾向于这个方向,但我没有把它看作是一个"硬而快"的规则.
我理解它的价值(用于缓存,抓取,传递链接等),但我也看到像twitter API这样的东西违反了它(请求http://api.twitter.com/1/statuses/friends_timeline.xml
会根据给定的用户名而有所不同),我知道有时它会可能是必要的 - 更不用说按时间顺序分页的资源也会随着新元素的添加而改变.
我是否应该努力从相同的URI中完全消除不同的响应,或者我只是接受有时它不实用,并且只要我最小化它的发生,我将处于合适的状态.
不是相同的响应,而是相同资源的表示(取决于 conneg 和条件请求标头)。在 Rest 架构中,一个 URI 标识一个且仅一个资源(但一个资源可以有多个 URI)。根据授权用户(HTTP Auth、cookies 等)提供不同的资源是不好的做法,因为相同的 URI 代表每个用户不同的资源,如 Twitter 示例中所示。我无法允许您查看我的时间线并为您提供 URI,因为这与您的时间线的 URI 相同。用户必须在 URI 中进行编码,并且访问受到授权机制的限制。要让单个访问点根据经过身份验证的用户提供不同的资源,请使用重定向(例如 303 See Other、302 Found,...)
归档时间: |
|
查看次数: |
1367 次 |
最近记录: |