Depot
Depot se utiliza para almacenar datos temporales involucrados en una única solicitud. El middleware puede colocar los datos temporales que procesa en el Depot para que los utilicen programas posteriores.
Cuando un servidor recibe una solicitud desde el navegador de un cliente, crea una instancia de Depot. Esta instancia se destruye después de que todo el middleware y el Handler hayan terminado de procesar la solicitud.
Por ejemplo, podemos establecer current_user en un middleware de inicio de sesión y luego leer la información del usuario actual en middleware o Handler posteriores.
Comprensión rápida
Depot se utiliza para almacenar y compartir datos durante el procesamiento de solicitudes. Implementa un contenedor de datos seguro en cuanto a tipos que admite dos patrones principales de uso:
- Almacenamiento clave-valor: Accede a valores asociados con claves de cadena mediante los métodos
insert/get. - Inyección de tipos: Almacena y recupera valores basados en el tipo mediante los métodos
inject/obtain.
Como se muestra en los ejemplos, Depot es particularmente útil para pasar datos entre middleware y manejadores. El middleware puede establecer valores en Depot (como información del usuario, estado de autenticación), y los manejadores posteriores pueden recuperar estos valores sin cálculos o consultas redundantes. El diseño de Depot garantiza la consistencia y accesibilidad de los datos a lo largo de toda la cadena de procesamiento de solicitudes, convirtiéndolo en una herramienta central para construir aplicaciones web complejas.
Establecer y recuperar datos mediante insert y get
Como se muestra arriba, puedes insertar clave y valor en Depot usando insert. Para valores de este tipo, puedes recuperarlos directamente usando get.
Si la clave no existe, o si la clave existe pero el tipo no coincide, devuelve None.
Establecer y recuperar datos mediante inject y obtain
A veces, existen escenarios donde hay una instancia única para un tipo sin necesidad de relacionarla con una clave específica. Puedes usar inject para insertar datos y luego usar obtain para recuperarlos. Estos métodos no requieren que proporciones una clave.