使用 last.fm API 维护 HTTP 缓存

Maintain HTTP Cache using last.fm API

LastFM API 用于在 HTTP 应答中公开“Cache-Control”header。相反,这是我得到的:

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 “term of use” 要求我们实现某种缓存(无论如何这对于网络上的任何类型的使用都是明智的) ,我想知道:如何用这样的答案来实现它?

当我注意到“Cache-Control”header 消失时,我在代码中强加了 1 个月的硬编码缓存来覆盖常规的“Cache-Control/Etag/…”缓存逻辑。

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

我收到了 last.fm 的回复,但该回复发布在他们之前的支持平台 getsatisfaction which ended the service quite abruptly。然后我没有答案的确切措辞,因为我什至没有来源。

综上所述,他们回答他们没有计划提供任何缓存友好的标签

在过去的 10 年里,我一直在想他们会支持他们的网络服务多久,在过去的 10 年里我一直很幸运能够继续使用它们。但是可以肯定的是,不应该依赖 last.fm。我希望 listenbrainz 能够提供一个 last.fm 的开放替代方案 :)