1

我使用法拉第请求 api。我想缓存响应正文并使用它来代替指定过期时间的请求。

我找到了 FaradayMiddleware::Caching 并且我可以缓存响应正文,但我不知道如何使用缓存而不是请求。

我使用的 API 服务不支持 http 缓存,所以我不能使用 faraday-http-cache gem。

在我的代码下面

connection = Faraday.new(url: 'http://exapmle.com') do |faraday|
  faraday.request :url_encoded
  cache_dir = File.join('/tmp/cache')
  faraday.response :caching do
    ActiveSupport::Cache::FileStore.new cache_dir, :expires_in => 3600
  end
  faraday.adapter Faraday.default_adapter
end

connection.get '/path/to/api', version: nil

如何使用缓存数据而不是正常响应?

缓存键是请求 url,但 url 是动态变化的。所以我想我需要一种方法来获取法拉第构造的 url。

4

0 回答 0