rest - REST 请求的 GET 或 PUT

标签 rest

我遇到了一种情况,客户端应用程序可以请求匹配特定条件的资源,如果匹配的资源不存在,则会创建并缓存该资源。对相同条件的后续请求将返回缓存的资源。

我可以通过 PUT 请求来创建资源和后续的 GET 来实现这一点。然而,在我的特定场景中,需要客户端对系统的内部工作了解太多,即客户端不应该关心资源是否已经存在。

那么,允许客户端发出单个 GET 请求(该请求碰巧创建资源(如果资源尚不存在))是否符合 ReSTful 原则?

最佳答案

理论上 GET 应该只是 GET ,并且不改变系统的状态。请参阅idempotency .

来自维基百科的段落:

Some methods (for example, HEAD, GET, OPTIONS and TRACE) are defined as safe, which means they are intended only for information retrieval and should not change the state of the server.

但是,在您的场景中,初始 GET 正在设置纯粹用于缓存的资源。后续调用不会改变系统的状态,因此我建议在这种情况下使用 GET 就可以了。

关于rest - REST 请求的 GET 或 PUT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2198514/

相关文章:

javascript - 如何减少 AJAX 密集型 Web 应用程序中的 HTTP 请求数量?

java - Jsp 文件未在 web.xml 中启动

java - 使用 JPQL 和 BooleanExpression 进行分页

java - Ant /JAVA : Config to include library files in the war file

ruby-on-rails - RESTful Controller CREATE 和 UPDATE 方法的 Rails 最佳实践

rest - 当多个测试添加到休息 Controller 测试时,为什么我需要 WebApplicationContext?

java - Paypal REST API 403 错误

javascript - 是否有最大 HTTP 状态代码消息长度?

java - 将 List<Object[]> 转换为 JSON

wcf - 使用 WP7 使用 WCF Rest 服务