我正在编写一个网站,我希望在其中将页面标记为已读,但无法找出最 RESTful 的方式。
显然,要检索页面,客户端将发送 GET 请求,但是如果我随后将页面标记为已读,这将打破 GET 应该是幂等的规则 - 它现在正在更改服务器上的某些内容。
有一个更好的方法吗?
读取状态是资源的固有部分,还是只是服务器端跟踪工具?读者是否想要获取所有“已读”或“未读”文档的列表?如果用户下载了文档但决定稍后阅读,是否可以将其标记为“未读”?
如果只是服务器端,那么可以{user,resource}在每个 GET 请求上将元组标记为已读。如果每个用户的读取状态是资源的一部分,则需要在用户和资源之间进行客户端可写的多对多映射,并且该对要么被映射(读取),要么不被映射(未读)。在这种情况下,我建议使用新资源来表示此状态,并允许客户端将 true/false 布尔值放入该资源 URI。user@host/resource/read无论是它/user/{user}/resource/read还是其他,这并不重要。
如果您希望自动设置此标志,并且您的客户端是 Web 浏览器,则在下载文档后您将需要使用 AJAX 执行第二个请求(并且该选项卡可能在特定的时间段内可见)。
| 归档时间: |
|
| 查看次数: |
1231 次 |
| 最近记录: |