Depot
Depot viene utilizzato per memorizzare dati temporanei coinvolti in una singola richiesta. Il middleware può inserire i dati temporanei che elabora nel Depot per l'utilizzo da parte dei programmi successivi.
Quando un server riceve una richiesta dal browser client, crea un'istanza di Depot. Questa istanza viene distrutta dopo che tutti i middleware e Handler hanno completato l'elaborazione della richiesta.
Ad esempio, possiamo impostare current_user in un middleware di login e poi leggere le informazioni dell'utente corrente nei middleware o Handler successivi.
Comprensione Rapida
Depot viene utilizzato per memorizzare e condividere dati durante l'elaborazione delle richieste. Implementa un contenitore di dati type-safe che supporta due principali pattern di utilizzo:
- Memorizzazione Chiave-Valore: Accedi ai valori associati a chiavi stringa tramite i metodi
insert/get. - Iniezione di Tipo: Memorizza e recupera valori basati sul tipo tramite i metodi
inject/obtain.
Come mostrato negli esempi, Depot è particolarmente utile per passare dati tra middleware e handler. Il middleware può impostare valori in Depot (come informazioni utente, stato di autenticazione), e gli handler successivi possono recuperare questi valori senza calcoli o query ridondanti. Il design di Depot garantisce la coerenza e l'accessibilità dei dati durante l'intera catena di elaborazione delle richieste, rendendolo uno strumento fondamentale per costruire applicazioni web complesse.
Impostazione e Recupero Dati tramite insert e get
Come mostrato sopra, puoi inserire chiave e valore in Depot utilizzando insert. Per valori di questo tipo, puoi recuperarli direttamente utilizzando get.
Se la chiave non esiste, o se la chiave esiste ma il tipo non corrisponde, restituisce None.
Impostazione e Recupero Dati tramite inject e obtain
A volte, ci sono scenari in cui esiste un'istanza unica per un tipo senza bisogno di relazionarsi a una specifica chiave. Puoi usare inject per inserire dati e poi usare obtain per recuperarli. Questi metodi non richiedono di fornire una chiave.