使用HTTP for REST API:可自动缓存吗?

时间:2014-10-27 13:31:45

标签: api rest http caching

我想知道,制作一个" RESTful API"您需要满足下面列出的6个架构限制:

http://en.wikipedia.org/wiki/Representational_state_transfer#Architectural_constraints

是否可以安全地声明,当您通过HTTP协议创建REST API时,"可缓存"约束是否自动满足?因为HTTP已经提供了一个高速缓存系统"开箱即用"通过HTTP标头:http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html

所以不用再担心了吗?

听起来像是一个愚蠢的问题,但我想确定。 : - )

亲切的问候!

ķ。

2 个答案:

答案 0 :(得分:2)

你是对的,HTTP已经为你提供了识别可缓存元素的方法,但是当你的API将由某些服务器端逻辑生成时,你仍然需要确保代码"背后"您的API将选择正确的HTTP标头,并准备好并能够对" If-modified-since"做出反应。理想世界中的要求。 创建一个可靠的"最后修改的"时间戳以及可靠地检查它实际上是安静的壮举; - )

希望这有点帮助, 扬

答案 1 :(得分:2)

让我稍微介绍一下创建正确缓存逻辑的挑战: 通常,API的后端是一个包含各种小信息的数据库。 REST API中的典型表示可以是累积视图(因此,比方说,用户活动日志,包含门户中最后一个用户操作的列表,沿着这些行)。 现在,为了知道您的API URL / user / 123 /活动是否已更改(在客户端通过“If-modified-since”-header发送给您的时间戳之后),您必须检查是否有任何最后一次请求后的其他活动。这样做的开销可能与简单地再次获取结果相同。因此,在很多情况下,人们只是不打扰,这是一种耻辱,因为正确的缓存会对Web App性能产生巨大影响。

也许这会给出更多细节, 扬