使用播放框架管理外部 api 调用的缓存解决方案

Cache solution to manage external api calls using play framework

我有一些外部付费 api 用于根据某些 ID 检索数据,我将执行的一些调用可能具有相同的 ID,因此我正在寻找最佳实践用缓存管理这种场景。 我还希望能够在 24 小时后删除缓存。

有什么建议吗?

谢谢!

Play 文档给出了(imo)关于做什么的明确指示:https://www.playframework.com/documentation/2.6.x/ScalaCache

它的要点是:

  • 在需要的地方注入缓存实例:
  • 使用您的实例来缓存内容:

所以基本上:

import play.api.cache._
import play.api.mvc._
import javax.inject.Inject

class Application @Inject() (cache: AsyncCacheApi, cc:ControllerComponents) extends AbstractController(cc) {

[...]
val result: Future[Done] = cache.set("item.key", connectedUser, 24.hours)
val futureMaybeUser: Future[Option[User]] = cache.get[User]("item.key")
}