Cómo almacenar en caché: JSON
-
26-09-2019 - |
Pregunta
Tengo una acción de índice de controlador que devuelve la salida JSON.
render :json => my_array.to_json
¿Qué tipo de almacenamiento en caché tengo que usar aquí? ¿El 'almacenamiento en caché de la página' tiene sentido para esto?
¿O tengo que hacer almacenamiento en caché de acción como a continuación?
caches_action :index
Solución
Ya sea el almacenamiento en caché de la acción o el almacenamiento en caché de la página funcionaría bien; El almacenamiento en caché de la página tendría el beneficio de nunca llamar a la pila de Rails, pero depende de si necesita controlar quién accede a esa alimentación JSON.
Soy un gran admirador de usar el almacenamiento en caché de la página si puedes salirse con la suya, hay grandes ahorros en los recursos del sistema. :)
EDITAR: Ejemplo de almacenamiento en caché de la página, en caso de que hubiera alguna confusión:
class SomeController < ApplicationController
caches_page :index
def index
render :json => my_array.to_json
end
end
A menos que haya entendido mal algo, eso debería ser todo lo que necesitas hacer.
Otros consejos
Las mismas consideraciones deben aplicarse a JSON como cualquier otra salida. Si necesita validar el acceso a los datos para el usuario, entonces Action Waching es el camino a seguir; de lo contrario, el almacenamiento en caché de la página debería estar bien.
Si los datos cambian debido a la lógica en su aplicación, ambas formas de almacenamiento en caché son problemáticas y es mejor que use otra cosa.