如果有一个REST资源,我想监视其他客户端对其进行的更改或修改,最好(并且最符合REST原则)的做法是什么?
我考虑的一种方法是提供特定的资源来保持连接打开状态,而不是立即返回如果该资源不存在。例如,给定资源:
我考虑的一种方法是提供特定的资源来保持连接打开状态,而不是立即返回如果该资源不存在。例如,给定资源:
/game/17/playerToMove
对这个资源进行"GET"操作可能会告诉我现在轮到我的对手走了。如果不想反复轮询该资源以找出轮到我走的时机,我可以记下移动的编号(比如说5),并尝试检索下一步:
/game/17/move/5
在“正常”的REST模型中,似乎对于这个URL的GET请求会返回404(未找到)错误。然而,如果服务器保持连接开放直到我的对手下棋,即:PUT /game/17/move/5
那么服务器可以返回我对手放入资源中的内容。这不仅能够为我提供所需的数据,而且还能作为一种通知方式,告诉我对手已经移动,而无需进行轮询。
这种方案是否符合RESTful原则?或者它违反了某些REST原则吗?