RESTful 架构中的给定 URI 是否应该始终返回相同的响应?

2024-04-18

这是一个后续问题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(使用前将#替换为@)

RESTful 架构中的给定 URI 是否应该始终返回相同的响应? 的相关文章

  • REST 何时/如何取代 SOAP [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我目前正在写关于 IT 技术等的论文
  • 在同一 URL 上运行 SOAP 和 RESTful

    假设我们有一个响应主机标头 kebab shop intra net 的网站 此 URL 中是否可以同时包含 SOAP 和 RESTful 也就是说 这两者都是在已部署的代码中处理的 kebab shop intra net takeawa
  • 为什么 Ruby on Rails 书籍或参考文献总是说更新是通过 PUT 进行的,而销毁是通过 DELETE 进行的,而事实并非如此?

    因为如果我用Fiddler来监控的话是 CRUD Method Path With Idempotent action Create POST foos No create Retrieve GET foos id Yes show Upd
  • Camel Rest URI 使用后缀

    所以我有一个使用 Camel 的 REST Web 服务 它工作得很好 只是如果我用后缀调用我的 URI 我会得到相同的响应 而不是 404 休息配置 restConfiguration component restlet bindingM
  • 从 asset 或 res/raw 中的文件获取 Uri

    我试图让它发挥作用 并且在网上查看了许多不同的资源 正如您从我所做的所有评论中看到的那样 我想访问位于 asset 或 res 中的 pdf 文件 哪一个并不重要 所以最简单的方法就可以了 我有下面的方法 它将获取实际文件 并使用参数中的
  • Jersey 2 - ContainerRequestFilter get 方法注解

    我试图获取 ContainerRequestFilter 对象中的方法注释 控制器 GET RolesAllowed ADMIN public String message return Hello rest12 容器请求过滤器 Provi
  • 如何设计导出端点的REST API?

    我正在设计 REST API 并遇到设计问题 我有alerts我希望用户能够export为少数文件格式之一 所以我们已经开始执行操作 命令了export 感觉像是 RPC 而不是 REST 此外 我不想采用默认的文件格式 相反 我想要求提供
  • 如何使用Python优化大型数据集的API调用?

    客观的 将地址列表发送到 API 并提取某些信息 例如 指示地址是否位于洪水区域的标志 Solution 适用于小数据的 Python 脚本 Problem 我想针对大输入优化当前的解决方案 如何提高 API 调用的性能 如果我有 100
  • 如何在 Spring Boot WebMvcTest 中设置上下文路径

    我正在尝试从 Spring Boot 应用程序测试我的 Rest 控制器 并希望控制器在与生产中相同的路径下可用 例如我有以下控制器 RestController Transactional public class MyControlle
  • OpenRasta - Scott Littlewoods 基本身份验证工作示例

    我正在测试使用 OpenRasta 作为 ASP NET MVC 的可行替代方案的可行性 但是 我遇到了有关身份验证的绊脚石 让我明确一点 开放式摘要身份验证 不是一个选项在此刻 我读到 Scott Littlewood 为 OpenRas
  • Ember 模型中的自定义请求 url

    我正在尝试将 Ember 数据与已构建的 REST api 一起使用 它适用于顶级路由 例如我在 api 端有课程路由 如下所示 app get courses app controllers courses findAll app get
  • Spring Security - 基于令牌的 API 身份验证和用户/密码身份验证

    我正在尝试创建一个主要使用 Spring 提供 REST API 的 Web 应用程序 并尝试配置安全方面 我正在尝试实现这种模式 https developers google com accounts docs MobileApps h
  • 响应中的有效 JSON

    我正在开发客户端和服务器应用程序 遇到了一个有趣的问题 我们正在创建一个 Restful API 并通过 JSON 响应与客户端进行通信 执行 DELETE 时 我们将返回 200 OK 和空白响应 我们的客户收到 200 OK 但解析 J
  • Azure DevOps 通过 REST API 获取链接到工作项的提交

    有没有办法获取链接到仅给定工作项 ID 的工作项的 Git 提交 我正在使用 PowerShell 和this https learn microsoft com en us rest api azure devops wit work 2
  • 如何为codeigniter项目完美设置虚拟主机?

    我正在尝试为 codeigniter 项目制作虚拟主机 我已经在 httpd vhosts conf 中完成了此操作
  • Restful服务参数不匹配异常

    我有服务 POST Path post Consumes application json public Response createProductInJSON Product product String result Product
  • 如何返回空实体的响应状态 405?

    如何在 java REST 中返回带有空实体的响应状态 405 POST Path path public Response createNullEntity return Response created null status 405
  • 如何从 UNC 中提取服务器名称

    谁能告诉我如何从 UNC 中提取服务器名称 ex 服务器名称 目录 目录 编辑 我很抱歉 但看起来我需要澄清一个错误 路径实际上更像是 服务器名 d 目录 我知道这可能会改变一些事情 怎么样Uri Uri uri new Uri serve
  • 将文件附加到 WCF REST 服务响应

    我有一个看起来像这样的资源 users id summary format format When format是 xml 或 json 我用一个由 WCF 自动编码的用户摘要对象进行响应 到目前为止还不错 但当format等于 pdf 我
  • PHP - Twitter API (OAuth) 分页无法正常工作

    我已经集成了 Twitter API Twitter OAuth 来获取特定公司帐户的最新提要 下面是我到目前为止所做的代码 https tomelliott com php authenticating twitter feed time

随机推荐