Ho creato un sito web per un campionato di tennis. Le due pagine principali sono classifiche e programma. Quando un utente accede al sito, vorrei che selezionassero prima la lega e la stagione. Ad esempio, il sito potrebbe ospitare classifiche / pianificazioni per più leghe. Quindi l'utente può selezionare la lega ABC e la stagione autunno 2016.
Per ogni richiesta dell'API Web dopo che l'utente seleziona la lega e la stagione, mi piacerebbe che l'API Web memorizzasse questa selezione per l'utente. Potrei memorizzare i valori quando l'utente li seleziona per la prima volta:
HttpContext.Current.Session ["League"] = league;
Quindi, nelle chiamate successive, l'API Web conosce la lega da utilizzare per ottenere la classifica.
Questo può essere negativo per due motivi:
-
L'API Web non è più stateless e la chiamata dal browser dovrebbe colpire quel server API Web specifico per le chiamate future.
-
Se il server API Web viene riavviato, perdiamo quei dati e dovremmo gestirli sul lato client / web.
Potrei dimenticarlo e memorizzare il campionato in sessione sul browser, quindi passare le informazioni all'API Web. Tuttavia, non dovremmo fidarci delle informazioni dal browser. Che cosa impedisce a qualcuno di utilizzare gli strumenti di sviluppo nel browser e inserire qualsiasi campionato a loro piace?
Un'altra opzione sarebbe quella di memorizzare la selezione della lega nel DB per l'utente, ma poi sto facendo chiamate DB aggiuntive per ogni richiesta per recuperare queste informazioni.
So che mi manca qualcosa, perché questo deve essere un problema comune che è stato risolto. Qual è il modo giusto per ricordare il campionato per un utente dopo averlo selezionato in origine? Il lato server ha bisogno della lega in modo che possa ottenere la classifica / pianificazione corretta per le chiamate successive.