AI2 App_Web_titoli_azionari

Il componente Web consente di gestire dati tramite HTTP GET o HTTP POST. Questi metodi permettono di interrogare server web i quali restituiscono dati. I dati ricevuti possono essere subito fruibili o anche elaborati da proprie applicazioni. Ad esempio, è possibile scrivere un'applicazione che visualizzi le informazioni di borsa, ma anche le previsioni del tempo, eccetera. Individuata la fonte dei dati, basta passarle i parametri richiesti per ricevere informazioni. Con queste, popolare pagine del telefono o tablet.
I file zip per i download sono aia compattatti, quando hanno password, essa e' reperibile nel testo App Inventor 2 per esempi

Questa applicazione permette di scegliere un titolo azionario da una lista prestabilita di titoli, saperne la quotazione corrente e la variazione percentuale sul valore precedente. La lettura dei dati avviene sul sito Yahoo! Finanza, e fatta utilizzando il componente Web di App Inventor e le API di Yahoo!
Cosa sono le API in informatica
API è l'acronimo di Application Programming Interface (Interfaccia di Programmazione di un'Applicazione) ed indica un insieme di procedure disponibili al programmatore per l'espletamento di un determinato compito all'interno di un certo programma.
Molti servizi web forniscono un'interfaccia di programmazione API per gli sviluppatori, questo indirizzo web http://programmableweb.com è un buon punto di partenza per documentarsi.
Le API di Yahoo! Finanza sono invece documentate a http://www.gummy-stuff.org/Yahoo-data.htm
Sul server, ogni titolo azionario è contrassegnato da un simbolo univoco.
Per ottenere l'ultimo prezzo e la variazione è necessario comunicarne il simbolo del titolo azionario ed i parametri che indicano cosa viene richiesto per quel titolo.
Ad esempio in questo indirizzo web.
http://download.finance.yahoo.com/d/quotes.csv?f=nl1p28&s=ENEL.MI
• Da http fino al punto interrogativo escluso è l'indirizzo con il quale avviene l'accesso al sito.
• Il punto interrogativo indica che quello che segue sono i parametri dell'interrogazione.
• La parte seguente fino a & esclusa sono il tipo di dati richiesti.
• Il simbolo & indica che dopo inizia un secondo gruppo di parametri.
• La lettera s è, di fatto, una variabile che verrà letta sul server.
• Per mezzo dell'operando = viene inserito in s il simbolo del titolo di cui vengono richiesti i dati.
L'utente si trova più a suo agio scegliendo fra nomi propri delle azioni che fra i loro simboli.
Per questa ragione vengono create 2 liste, una con il nome delle azioni ed una con i loro simboli.
Nella lista dei nomi propri delle azioni ognuna di queste è contraddistinta da una posizione Index.
Nella lista dei simboli, allo stesso Index deve corrispondere il simbolo della medesima azione.
La lunghezza delle liste è irrilevante purché l'accoppiamento Nome/simbolo sia rispettato.
L'utente sceglie nella lista dei nomi propri, il computer memorizza l'Index, e dalla lista dei simboli estrae il simbolo per quell'Index inserendolo nella richiesta per il server.

Quindi, la prima parte http://download.finance.yahoo.com/d/quotes.csv?f=nl1p28&s= è uguale per tutte le richieste e la parte finale è il simbolo corrispondente al titolo che di volta in volta viene inviato.

Dopo la scelta, viene fatta al server una richiesta GET, utilizzando la proprietà Url del componente Web (In Blocks Editor, blocco Web.Url all'interno del blocco lpSceltaTitolo.AfterPicking).
La risposta è recuperata nell'evento (blocco) Web.GotText.
Nel blocco Web.GotText, nella variabile (blocco) responseContent viene a trovarsi il contenuto richiesto.
Ad esempio, nel caso venga scelto ENEL i dati ritornati dal server saranno del tipo:
"ENEL",2.9220,"+0.83%",,"ENEL.MI"
I valori numerici potranno essere diversi in ragione dell'oscillazione del valore del titolo.
I dati di risposta dal server sono in formato CSV.
In questo formato ogni riga (record di database) è rappresentata da una linea di testo, che a sua volta è divisa in parti (campi di record) separati da un apposito carattere, in questo caso la virgola.
Nell'applicazione vengono mostrati i risultati per il titolo scelto ed il dato grezzo come ricevuto dal server.