如何处理REST中的陈旧数据?

例如,如果我调用GET来获取项目,请使用DELETE删除它并再次获取它,第二个GET应该如何工作?

我的意思是,通过正确遵循REST原则,由于GET可以被缓存,所有这些都是正确的方法? 在REST中处理陈旧数据的方法是什么?


首先,行为取决于DELETE调用返回的响应代码。

如果DELETE返回200 - OK204 - No Content则客户端应在下次调用GET时收到404 - Not Found 。 这是因为202和204意味着资源立即被删除。

但是,如果DELETE返回202 - Accepted ,则客户机可能会在一段时间后成功获取资源。 这是因为202意味着资源已被标记为删除,但不一定立即清理。

其次,如果涉及缓存,则应该构建该行为以便与不存在缓存时会发生的情况保持一致。 除了任何缓存的副本之外,成功的DELETE应始终导致从数据的真实来源中删除。


正如最初所述,在DELETE之后的GET应该会产生HTTP 404错误,而不管可能存在的缓存。 逻辑代码应该足够聪明,以便从持久性存储以及内存存储或缓存中删除记录。 另外,用户界面应该能够以任何你认为合适的流程或流程来处理404的结果。

链接地址: http://www.djcxy.com/p/59837.html

上一篇: How to handle stale data in REST?

下一篇: Techniques for extracting regular expressions out of a labeled data set