我有一种情况,客户端应用程序可以请求匹配特定条件的资源,如果匹配的资源不存在,则创建并缓存.对相同条件的后续请求将返回缓存的资源.
我可以通过PUT请求实现这一点来创建资源和后续的GET.但是,在我的特定场景中,要求客户端对我的系统的内部工作原理了解太多,即客户端不应该关心资源是否已经存在.
因此,如果客户端尚未存在,那么允许客户端发出创建资源的单个GET请求是否是ReSTful?
从理论上讲,GET应该只是GET,而不是改变你的系统状态.看到幂等性.
维基百科的段落:
某些方法(例如,HEAD,GET,OPTIONS和TRACE)被定义为安全,这意味着它们仅用于信息检索,不应更改服务器的状态.
但是,在您的方案中,初始GET正在设置纯粹用于缓存的资源.后续调用不会改变系统的状态,所以我建议在这种情况下GET没问题.