Cache remota
Abbiamo visto che il web storage è una specie di cache locale dove memorizzare localmente, in modo permanente, dati ed informazioni delle applicazioni. Il vantaggio di questa soluzione è che è possibile salvare in modo permanente informazioni che si mantengono al ricaricamento della pagina. Tuttavia il limite che rimane è quello di non avere informazioni permanenti accessibili da qualsiasi browser, ovvero quel che manca è un servizio di cache globale.
La cache remota è un servizio messo a disposizione da questo sito per i miei studenti per poter salvare su un server remoto degli oggetti JSON associandoli ad una chiave, e poi richiamarli successivamente, da qualsiasi browser e qualsiasi client.
Questo sistema permette quindi di scrivere applicazioni per il web dove possiamo salvare dati ed elaborazioni e riutilizzarli in una sessione successiva, ad esempio per memorizzare i TODO di un utente, oppure memorizzare lo stato di un gioco, o infine salvare informazioni inserite dall’utente1. Per attivare la cache remota occorre registrarsi ed ottenere il token di accesso via mail cliccando a questo indirizzo: http://ws.cipiaceinfo.it/register/
La cache remota consiste come il local storage in un servizio remoto dove si memorizzano coppie chiave (stringa) – valore (stringa). E’ composta da due servizi, uno per scrivere o modificare una chiave (SET) ed uno per leggere il dato avendo la chiave (GET).
La struttura delle due chiamate è riassunta nella seguente tabella:
SET
url: https://ws.cipiaceinfo.it/cache/set
method: "POST"
headers:
"content-type": "application/json",
"key": "MIOTOKEN"
body: {
"key": "chiave",
"value": "valore"
}
GET
url: https://ws.cipiaceinfo.it/cache/get
method: "POST"
headers:
"content-type": "application/json",
"key": "MIOTOKEN"
body: {
"key": "chiave"
}
Vediamo un esempio di funzionamento. Ipotizziamo che si debba salvare un oggetto myObject con la chiave myKey. Il codice da eseguire per eseguire la SET sarà questo:
const myObject = {
firstName: "Mario",
lastName: "Rossi"
}; // oggetto da salvare
const jsonObject = JSON.stringify(myObject); // JSON da oggetto
const myToken = "XXXXXXXXXXXXXXXX"; // token ottenuto via mail
const myKey = "person"; // chiave dell'oggetto
fetch("http://ws.cipiaceinfo.it/cache/set", {
method: "POST",
headers: {
"content-type": "application/json",
"key": myToken
},
body: JSON.stringify({
key: myKey,
value: jsonObject
}
})
.then(r => r.json())
.then(r => {
console.log(r.result); // se tutto è ok, stamperà "ok"
})
Per leggere (operazione GET) invece il codice sarà questo:
let myObject;
const myToken = "XXXXXXXXXXXXXXXX"; // token ottenuto via mail
const myKey = "person"; // chiave dell'oggetto
fetch("http://ws.cipiaceinfo.it/cache/get", {
method: "POST",
headers: {
"content-type": "application/json",
"key": myToken
},
body: JSON.stringify({
key: myKey,
}
})
.then(r => r.json())
.then(r => {
myObject = JSON.parse(r.result); // r.result conterrà l'oggetto richiesto
})
- L’accesso a questo servizio non è pubblico, ma avviene mediante registrazione ad utenti autorizzati. Per richiedere l’autorizzazione contattatemi. ↩︎