15
9 Settembre 2016 Working with HTTP Client, REST APIs and connection availability check Michele Aponte [email protected] @apomic80 http://www.tolist.net

Working with http client rest apis and connection availability check

Embed Size (px)

Citation preview

Page 1: Working with http client rest apis and connection availability check

9 Settembre 2016

Working with HTTP Client, REST APIs and connection availability checkMichele [email protected] @apomic80 http://www.tolist.net

Page 2: Working with http client rest apis and connection availability check

9 Settembre 2016

Architettura basata su API

Page 3: Working with http client rest apis and connection availability check

9 Settembre 2016

Che cos’è REST• REST è l’acronimo di REpresentational State Transfer • E’ un modello architetturale per creare API che utilizzano il protocollo HTTP

come metodo di comunicazione.• Ogni applicazione è divisa in risorse• Ogni risorsa è unica ed indirizzabile usando una sintassi universale• Le risorse sono condivise usando un’interfaccia uniforme che preveda un

insieme vincolato di operazioni ben definite e un insieme vincolato di contenuti• Il protocollo deve essere: client-server, stateless e cachable.

Page 4: Working with http client rest apis and connection availability check

9 Settembre 2016

Le risorse• REST è caratterizzato dall’esistenza di risorse • Ogni risorsa ha un identificativo unico e possiamo accederci tramite un

identificatore globale (che chiamiamo URI)

Page 5: Working with http client rest apis and connection availability check

9 Settembre 2016

HTTP e REST: Request Verbs

Page 6: Working with http client rest apis and connection availability check

9 Settembre 2016

HTTP e REST: Request Headers• Si tratta di istruzioni ulteriori che vengono aggiunte alla richiesta• La lista completa è disponibile al seguente indirizzo: (http://

www.w3.org/Protocols/rfc2616/rfc2616-sec14.html)• Possibili header sono• Accept• Location Header• Age

Page 7: Working with http client rest apis and connection availability check

9 Settembre 2016

HTTP e Rest: Response Status Codes• Questi codici vengono prodotti assieme alla risposta e forniscono al client

dettagli sullo stato della richiesta• La lista completa è disponibile al seguente indirizzo: http://

www.w3.org/Protocols/rfc2616/rfc2616-sec10.html • 200: ok• 201: created• 204: no content• 400: bad request• 404: resource not found• 500: server error

Page 8: Working with http client rest apis and connection availability check

9 Settembre 2016

SOAP vs REST (differenze concettuali)

• estraiUtente(Utente)• Questa è un’operazione REST perché stiamo accedendo a una risorsa (un dato)

• switchCategoria(Utente, oldCategory, newCategory)• Questa è un’operazione SOAP

Page 9: Working with http client rest apis and connection availability check

9 Settembre 2016

HttpClient• Per invocare servizi REST in .NET è possibile utilizzare HttpClient:• Metodi per i verbi comuni (DELETE, GET, PUT e POST). Ognuna di queste richieste viene

inviata in modo asincrono.• Supporto di impostazioni e schemi di autenticazione comuni.• Accesso ai dettagli SSL (Secure Sockets Layer) sul trasporto.• Possibilità di recuperare, impostare ed eliminare cookie.• Info sullo stato delle richieste HTTP disponibili per i metodi asincroni.

Page 10: Working with http client rest apis and connection availability check

9 Settembre 2016

DemoHttpClient e Rest API

Page 11: Working with http client rest apis and connection availability check

9 Settembre 2016

Verifica disponibilità della Rete• In applicazioni mobile che usano un back-end la disponibilità della

connessione è fondamentale:• L’applicazione in assenza di connessione potrebbe non aver nessun senso di utilizzo• Politiche di gestione dell’off-line

• Sola lettura da un database locale• Scrittura off-line e successiva sincronizzazione dei dati

Page 12: Working with http client rest apis and connection availability check

9 Settembre 2016

Verifica connettività in iOS• In Xamarin iOS è possibile utilizzare una classe helper disponibile su github,

basata sulla API :• https://

github.com/xamarin/ios-samples/blob/master/ReachabilitySample/reachability.cs

Page 13: Working with http client rest apis and connection availability check

9 Settembre 2016

Verifica connettività in Android• In android è disponibile un oggetto ConnettivityManager, da cui ottenere un

oggetto NetworkInfo, che fornisce le infomazioni sulla rete e il suo stato:

• Richiede android.permission.ACCESS_NETWORK_STATE

Page 14: Working with http client rest apis and connection availability check

9 Settembre 2016

DemoNetwork Availability Check

Page 15: Working with http client rest apis and connection availability check

9 Settembre 2016

Question time