Emmagatzematge de dades a Internet
Gairebé totes les webapps necessiten accedir a dades en el núvol per funcionar correctament. En l'entorn professional s'utilitzen bases de dades ubicades en servidors gestionats per determinades empreses, on s'accedeix a la informació mitjançant una API que depèn de cada proveïdor (Firebase, CloudDB, per exemple).
Una altra possibilitat és gestionar una base de dades en un servidor propi amb programari específic (MySQL, per exemple).
En un entorn escolar on no es disposi d'aquestes eines, es proposa utilitzar fulls de càlcul de Google com a base de dades, per aprofitar certs avantatges:
- El servei és gratuït, només cal disposar d'un compte de Google.
- Docents i alumnes saben com utilitzar-los i compartir-los.
- Sempre disponibles.
- Disposen d'un historial de versions.
- El procés de configuració per accedir a les dades és simple.
Cada document està format per un o diversos fulls de càlcul i cada full pot contenir una taula amb dades. Així, el document esdevé una mena de base de dades on fer-hi consultes, afegir i/o modificar dades.
Com a exemple, un full de càlcul amb una taula de dades de tipus de vehicles. La primera fila del full és per a la capçalera, i conté el nom dels camps de cada registre de vehicle. La resta de files conté un registre cadascuna. Aquesta és la taula:
Configuració del full de càlcul
Per tal que es pugui accedir a les dades s'utilitza un script de Google lligat al document. Aquest script rep les consultes realitzades des de la webapp i retorna els resultats. Aquí s'inclou un script prèviament configurat amb alguns tipus de consulta, per facilitar la configuració.
En el full de càlcul, s'ha d'accedir a l'editor de scripts des del menú Extensions - Apps Script:
S'obre l'editor de scripts amb una funció buida:
Aleshores cal esborrar la funció buida i, tot seguit, copiar i enganxar el text del script.
A continuació es desa el script i es configura l'accés des del menú Implementar - Nueva implementación:
En la finestra emergent s'ha de fer clic a la roda dentada i triar Aplicación web:
Si Google demana accés a les pròpies dades, s'ha d'autoritzar.
En la finestra següent s'ha de permetre l'accés a qualsevol usuari i fer clic al botó Implementar:
Finalment s'obté l'URL del script per poder-hi accedir. Serà necessària per accedir al script des de la webapp:
Un cop acabada la configuració del full de càlcul, és el moment de comprovar que el script funciona de la forma prevista. Per fer-ho, escriu aquest URL en el navegador:
scriptURL?query=select, on scriptURL és l'URL obtingut anteriorment.
En cas que es retornin totes les dades del full, el script està ben configurat. En canvi, si es retorna un error, s'ha de revisar la configuració del full i del script.
Accés a les dades. Consultes
L'accés a les dades es fa mitjançant consultes, utilitzant la instrucció fetch, la URL del script obtinguda anteriorment i un o diversos paràmetres. Els paràmetres que es poden incloure són:
- query: tipus de consulta (select, insert, update, delete, count o fields). Paràmetre necessari.
- from: nom del full de càlcul (pestanya inferior). Només cal incloure'l si es treballa amb més d'una taula.
- where: nom del camp sobre el qual es vol fer la consulta. No cal incloure'l si es volen seleccionar tots els registres.
- is: valor que ha de tenir el camp triat per seleccionar el registre.
- isnot: valor que no ha de tenir el camp triat per seleccionar el registre.
- and: nom d'un segon camp que ha de tenir un valor determinat per seleccionar el registre.
- or: nom d'un segon camp que condiciona la selecció del registre a que almenys un del camps tingui un valor determinat.
- equal: valor que ha de tenir el segon camp quan la consulta inclou els paràmetres and o or.
- order : en una consulta de tipus select, nom del camp que servirà com a criteri d'ordenació dels registres seleccionats.
- values: valors que s'han d'assignar als registres. Només cal incloure'l en les consultes insert i update.
Aquest és un exemple de consulta a la base de dades sobre vehicle:
let scriptURL = // aquí s'ha d'escriure l'URL del script let consulta = scriptURL + "?query=select&where=Tipus&is=Turisme"; fetch(consulta) .then((resposta) => { // primera "promesa" return resposta.json(); // retorna les dades JSON obtingudes com a llista }) .then((resposta) => { // segona "promesa". Resposta = [{"Tipus":"Turisme","Motor":"Elèctric","Any":"2022","Velocitat":"120"}] // espai per a les instruccions que s'executen en rebre la llista });
Aquest fragment de codi retorna la informació de tots els vehicles de tipus "Turisme".
La resposta obtinguda mitjançant una instrucció fetch no s'obté immediatament, de forma que es processa de forma asíncrona amb una sèrie de promeses (.then()) que s'executen seqüencialment.





