我使用法拉第请求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是动态更改的。所以我想我需要一种方法来获取由法拉第构建的网址。