使用 last.fm API 维护 HTTP 缓存

LastFM API 用于在 HTTP 返回中公开 " Cache-Control" 头。但是,这里是我得到的:

curl --head "http://ws.audioscrobbler.com/2.0/?api_key=APIKEY&artist=NOFX&autocorrect=1&format=json&method=artist.getsimilar&results=100"

HTTP/1.1 200 OK
Server: openresty/1.9.15.1
Date: Wed, 13 May 2020 09:44:27 GMT
Content-Type: application/json
Connection: keep-alive
content-length: 81358
Access-Control-Allow-Methods: POST, GET, OPTIONS
Access-Control-Allow-Origin: *
Mandats-contributions: 86400

由于 last.fm 的 "使用条款" 要求我们实现某种形式的缓存(对于任何类型的 Web 使用来说都是明智的),我想知道:我如何在这样的答案中实现它呢?

当我注意到 " Cache-Control" 标头消失时,我在代码中强制一个硬编码的缓存期限为 1 个月,以覆盖常规的 " Cache-Control/Etag/…" 缓存逻辑。

我可能忽略了一些东西,我不是专家。但是我希望有一个比保持静态 1 个月缓存更好的解决方案。

点赞
用户6436093
用户6436093

我收到了来自 last.fm 的回复,但这是发布在他们之前的支持平台 getsatisfaction 上的,这个服务已经相当突然地结束了。因此,我没有确切的答案,因为我甚至没有来源。

总结一下,他们回答说他们没有计划提供任何缓存友好的标签

过去的10年里,我一直在思考他们会支持他们的网络服务有多久,我在过去的10年里很幸运地持续使用它们。但是肯定不能依赖 last.fm。我希望 listenbrainz 能够提供一个开放的替代品来取代 last.fm :)

2021-02-04 12:45:18