Tengo una api escrita en rails que en cada solicitud responde con una respuesta JSON.
La respuesta podría ser enorme, así que tengo que comprimir la respuesta en JSON usando gzip.
Preguntando cómo hacerlo en rails controlador?
He añadido la línea
use Rack::Deflater
en config.ru
También debo estar cambiando algo en la línea de lo que hace JSON?
render :json => response.to_json()
También, ¿cómo puedo comprobar si la respuesta es en formato gzip o no..??
Hice una solicitud curl desde la terminal, sólo veo el normal llanura JSON.
Mi post La Compresión de contenido con Rack::Deflater describe un par de maneras de integrar en Rack::Deflater. La forma más fácil sería simplemente la actualización de
config/application.rb
con:y automáticamente te comprimir todas las respuestas de controlador con deflate /gzip si el cliente dice explícitamente que ellos pueden manejar.
config.middleware.use Rack::Deflater
de la aplicación.rb, compresión de empezar a trabajar sólo en Mac OS (Chrome, FF y Safari). En windows puedo recibir respuestas sin ‘Content-Encoding: gzip», en FF e IE (sólo funciona en google chrome). P. S. «Accept-Encoding: gzip» presente en todos los navegadores. ¿Sabes por qué?)Para la respuesta en formato gzip no tenemos que cambiar la
render
llamada al método.Si la solicitud tiene el encabezado
Accept-Encoding: gzip
, los Rieles se comprime automáticamente la respuesta en JSON usando gzip.Si usted no desea que el usuario envíe una solicitud con el preset de encabezado., usted puede agregar el encabezado de la solicitud de forma manual en el controlador antes de renderizar la respuesta:
Rack::Deflater
middleware para obtener Rieles para comprimir la respuesta en JSON, aunque de haber pasado el Accept-Encoding encabezado de la solicitud en conjunto a ‘gzip,deflate’. Observe que el encabezado de la solicitud también es necesario para la compresión de una patada en el.Puede consultar Curl mediante el establecimiento de un encabezado personalizado para obtener gzip respuesta
luego, luego descomprimirlo para ver la respuesta real json
Si no funciona. post de vuelta con salida de
rake middlewares
para ayudarnos a solucionar aún más.En algunos casos, usted puede considerar para escribir enorme respuesta en un archivo gzip es:
y actualización de este archivo regularmente