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

标签 http rest restful-architecture http-verbs

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

我的意思是,通过正确遵循 REST 原则,这样做的正确方法是什么,因为 GET 可以被缓存等等?在 REST 中处理陈旧数据的方法是什么?

最佳答案

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

如果 DELETE 返回 200 - OK204 - No Content 那么客户端在下次调用 GET 时应该得到 404 - Not Found .那是因为 202 和 204 表示资源被立即删除。

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

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

关于http - 如何处理 REST 中的陈旧数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10737203/

相关文章:

asp.net-mvc - 发送 HTTP header 后服务器无法设置状态 IIS7.5

android - 超时异常(从 Android 向 PHP 页面发送数据)

rest - 如何在jmeter中使http请求中的搜索参数为动态的

java - 使用 TLSV1 的 cxf webclient 调用 api

rest - 上下文相关的 REST API 策略

java - 设计一个 RESTful 网站

c# - 如何在 Asp.Net 中调用基于 HTTP 的 Java Web 服务(Servlet)。

java - 为什么我在尝试使用这个 github 项目时会陷入无限循环?

java - 将 Android App 连接到 restful webservice

REST API 包括和排除子资源