当前位置:  开发笔记 > 运维 > 正文

GET或PUT表示REST请求

如何解决《GET或PUT表示REST请求》经验,为你挑选了1个好方法。

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

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

因此,如果客户端尚未存在,那么允许客户端发出创建资源的单个GET请求是否是ReSTful?



1> Richard Ever..:

从理论上讲,GET应该只是GET,而不是改变你的系统状态.看到幂等性.

维基百科的段落:

某些方法(例如,HEAD,GET,OPTIONS和TRACE)被定义为安全,这意味着它们仅用于信息检索,不应更改服务器的状态.

但是,在您的方案中,初始GET正在设置纯粹用于缓存的资源.后续调用不会改变系统的状态,所以我建议在这种情况下GET没问题.


我不认为这是幂等性的正确定义.这并不意味着操作不会改变服务器的状态; 这意味着执行n次操作与执行一次操作相同(如上一段所述).因此,GET可以合法地改变系统的状态并且仍然是幂等的,只要后续GET到*相同的URI*不会引起进一步的改变.同样适用于PUT和DELETE,但不适用于POST.
推荐阅读
低调pasta_730
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有