Sto cercando di scrivere un resto GET API per servire i risultati della query. L'intero flusso che si verifica sul server è:
- Recupera dati utente
- Chiama la prima query, se i risultati vengono generati: restituisci risultati, altrimenti continua
- Chiama la seconda query, se i risultati sono generati: restituisci risultati, altrimenti continua
- E e continua così.
Il problema è che voglio ricordare quale query ha generato i risultati e la volta successiva che l'utente effettua la richiesta, chiama e avvia la catena da lì invece che i precedenti. Inoltre, poiché il passaggio 1 genera sempre gli stessi dati per quell'utente specifico, voglio saltare anche questo nelle query successive. Quale sarebbe la migliore pratica per questo?
L'endpoint suggerisce alcuni elementi all'utente come raccomandazioni. Per generare questi, recupero gli oggetti visti dall'utente ed eseguo determinate query, ad esempio, in base al tipo, seconda in base al prezzo e così via. I dati dell'utente aiutano in queste query, ad esempio, i prezzi delle cose che ha visto, il tipo di prodotti e così via. Dal momento che gli utenti che hanno visto gli articoli sono sensibili, non voglio inviarli di nuovo al client.
Ho pensato di inviare alcuni dati di supporto come il numero di query al client (app per dispositivi mobili) e anche i dati utente del passaggio 1 indietro all'utente e inviarlo al server dal client mentre effettua le chiamate successive, ma il Non voglio inviare dati sensibili all'utente dal server al client.
Un altro modo in cui pensavo era usare una cache come Redis ma il problema è che l'aggiunta di una cache su Heroku sarebbe costosa. Qualsiasi altro modo?