我有一个用 rails 编写的 api,它在每个请求上都会以 JSON 响应进行响应。
响应可能很大,所以我需要使用 gzip 压缩 JSON 响应。
想知道如何在 Rails Controller 中执行此操作?
我已经添加了行
use Rack::Deflater
在 config.ru 中
我是否也应该更改呈现 JSON 的行中的某些内容?
render :json => response.to_json()
另外,我如何检查响应是否为 gzip 格式..?
我从终端做了一个 curl 请求,我只看到普通的纯 JSON。
最佳答案
我的帖子Content Compression with Rack::Deflater描述了几种集成 Rack::Deflater 的方法。最简单的方法是更新 config/application.rb
:
module YourApp
class Application < Rails::Application
config.middleware.use Rack::Deflater
end
end
如果客户端明确表示可以处理,您将使用 deflate/gzip 自动压缩所有 Controller 响应。
关于ruby-on-rails - 使用 gzip 压缩的 rails json 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16766859/