例如,如果我调用GET获取一个项目,用DELETE删除它并再次GET它,那么第二个GET应该如何工作?
我的意思是,通过正确遵循 REST 原则,这样做的正确方法是什么,因为 GET 可以被缓存等等?在 REST 中处理陈旧数据的方法是什么?
最佳答案
首先,行为取决于 DELETE 调用返回的响应代码。
如果 DELETE 返回 200 - OK
或 204 - No Content
那么客户端在下次调用 GET 时应该得到 404 - Not Found
.那是因为 202 和 204 表示资源被立即删除。
但是,如果 DELETE 返回 202 - Accepted
,则客户端有可能在之后的一段时间内成功获取资源。那是因为 202 意味着资源已被标记为删除,但不一定立即清理。
其次,如果涉及缓存,则应该构建行为以与不存在缓存时发生的情况一致。成功的 DELETE 应该始终导致从数据的真实来源以及任何缓存副本中删除。
关于http - 如何处理 REST 中的陈旧数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10737203/