SlideShare una empresa de Scribd logo
1 de 15
Architettura basata su API
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.
Le risorse
• REST è caratterizzato dall’esistenza di risorse
• Ogni risorsa ha un identificativo unico e possiamo accederci tramite un
identificatore globale (che chiamiamo URI)
HTTP e REST: Request Verbs
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
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
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
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.
Demo
HttpClient e Rest API
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
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
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
Demo
Network Availability Check
Question time

Más contenido relacionado

Destacado

Introduction to SPA with AngularJS
Introduction to SPA with AngularJSIntroduction to SPA with AngularJS
Introduction to SPA with AngularJSRiki Pribadi
 
Siz değil iş sizi nasıl bulur? GDG İzmir
Siz değil iş sizi nasıl bulur? GDG İzmir Siz değil iş sizi nasıl bulur? GDG İzmir
Siz değil iş sizi nasıl bulur? GDG İzmir Gokhan Boranalp
 
Introduction to Angular 2
Introduction to Angular 2Introduction to Angular 2
Introduction to Angular 2Trung Vo Tuan
 
Awesome Words To Use On Your CV
Awesome Words To Use On Your CVAwesome Words To Use On Your CV
Awesome Words To Use On Your CVMonster UK
 

Destacado (8)

Spa with angular
Spa with angularSpa with angular
Spa with angular
 
Introduction to SPA with AngularJS
Introduction to SPA with AngularJSIntroduction to SPA with AngularJS
Introduction to SPA with AngularJS
 
Xamarin forms
Xamarin formsXamarin forms
Xamarin forms
 
Git 101
Git 101Git 101
Git 101
 
Siz değil iş sizi nasıl bulur? GDG İzmir
Siz değil iş sizi nasıl bulur? GDG İzmir Siz değil iş sizi nasıl bulur? GDG İzmir
Siz değil iş sizi nasıl bulur? GDG İzmir
 
Introduction to Angular 2
Introduction to Angular 2Introduction to Angular 2
Introduction to Angular 2
 
Effective cv writing
Effective cv writingEffective cv writing
Effective cv writing
 
Awesome Words To Use On Your CV
Awesome Words To Use On Your CVAwesome Words To Use On Your CV
Awesome Words To Use On Your CV
 

Similar a Working with http client rest apis and connection availability check

Creare API pubbliche, come evitare gli errori comuni
 Creare API pubbliche, come evitare gli errori comuni Creare API pubbliche, come evitare gli errori comuni
Creare API pubbliche, come evitare gli errori comuniAndrea Dottor
 
Lezione 11: Accesso ai RESTful Web Services in Java
Lezione 11: Accesso ai RESTful Web Services in JavaLezione 11: Accesso ai RESTful Web Services in Java
Lezione 11: Accesso ai RESTful Web Services in JavaAndrea Della Corte
 
Fr01 asp.net web api reloaded
Fr01   asp.net web api reloadedFr01   asp.net web api reloaded
Fr01 asp.net web api reloadedDotNetCampus
 
REST API fantastiche e dove trovarle
REST API fantastiche e dove trovarleREST API fantastiche e dove trovarle
REST API fantastiche e dove trovarleMarco Breveglieri
 
Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini Whymca
 
SVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROIDSVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROIDLuca Masini
 
Le Applicazioni di Internet Web, FTP, Posta e App pr il Mobile
Le Applicazioni di Internet Web, FTP, Posta e App pr il MobileLe Applicazioni di Internet Web, FTP, Posta e App pr il Mobile
Le Applicazioni di Internet Web, FTP, Posta e App pr il MobileI.S.I.S. "Antonio Serra" - Napoli
 
Visual Studio 2013 - A New kind In Town - ASP.NET Web Api 2
Visual Studio 2013 - A New kind In Town - ASP.NET Web Api 2Visual Studio 2013 - A New kind In Town - ASP.NET Web Api 2
Visual Studio 2013 - A New kind In Town - ASP.NET Web Api 2Pietro Libro
 
Asp.net web api reloaded
Asp.net web api reloadedAsp.net web api reloaded
Asp.net web api reloadedPietro Libro
 
Alla scoperta di gRPC
Alla scoperta di gRPCAlla scoperta di gRPC
Alla scoperta di gRPCAndrea Dottor
 
RESTful "il web programmabile"
RESTful "il web programmabile"RESTful "il web programmabile"
RESTful "il web programmabile"Flavio Troia
 
WeWantWeb - WCF Data Services
WeWantWeb - WCF Data ServicesWeWantWeb - WCF Data Services
WeWantWeb - WCF Data ServicesDomusDotNet
 
Kubernetes as HA time series server, a proposal
Kubernetes as HA time series server, a proposalKubernetes as HA time series server, a proposal
Kubernetes as HA time series server, a proposalGiuliano Latini
 
Come funziona la navigazione Web
Come funziona la navigazione WebCome funziona la navigazione Web
Come funziona la navigazione Webextrategy
 

Similar a Working with http client rest apis and connection availability check (20)

Creare API pubbliche, come evitare gli errori comuni
 Creare API pubbliche, come evitare gli errori comuni Creare API pubbliche, come evitare gli errori comuni
Creare API pubbliche, come evitare gli errori comuni
 
Lezione 11: Accesso ai RESTful Web Services in Java
Lezione 11: Accesso ai RESTful Web Services in JavaLezione 11: Accesso ai RESTful Web Services in Java
Lezione 11: Accesso ai RESTful Web Services in Java
 
Fr01 asp.net web api reloaded
Fr01   asp.net web api reloadedFr01   asp.net web api reloaded
Fr01 asp.net web api reloaded
 
REST API fantastiche e dove trovarle
REST API fantastiche e dove trovarleREST API fantastiche e dove trovarle
REST API fantastiche e dove trovarle
 
Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini
 
SVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROIDSVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROID
 
Corso di servlet jsp e pattern
Corso di servlet jsp e patternCorso di servlet jsp e pattern
Corso di servlet jsp e pattern
 
Le Applicazioni di Internet Web, FTP, Posta e App pr il Mobile
Le Applicazioni di Internet Web, FTP, Posta e App pr il MobileLe Applicazioni di Internet Web, FTP, Posta e App pr il Mobile
Le Applicazioni di Internet Web, FTP, Posta e App pr il Mobile
 
Visual Studio 2013 - A New kind In Town - ASP.NET Web Api 2
Visual Studio 2013 - A New kind In Town - ASP.NET Web Api 2Visual Studio 2013 - A New kind In Town - ASP.NET Web Api 2
Visual Studio 2013 - A New kind In Town - ASP.NET Web Api 2
 
Asp.net web api reloaded
Asp.net web api reloadedAsp.net web api reloaded
Asp.net web api reloaded
 
ASP.NET Web API
ASP.NET Web APIASP.NET Web API
ASP.NET Web API
 
Web api 2.0
Web api 2.0Web api 2.0
Web api 2.0
 
Web sockets
Web socketsWeb sockets
Web sockets
 
Alla scoperta di gRPC
Alla scoperta di gRPCAlla scoperta di gRPC
Alla scoperta di gRPC
 
Net core base
Net core baseNet core base
Net core base
 
RESTful "il web programmabile"
RESTful "il web programmabile"RESTful "il web programmabile"
RESTful "il web programmabile"
 
Web services
Web servicesWeb services
Web services
 
WeWantWeb - WCF Data Services
WeWantWeb - WCF Data ServicesWeWantWeb - WCF Data Services
WeWantWeb - WCF Data Services
 
Kubernetes as HA time series server, a proposal
Kubernetes as HA time series server, a proposalKubernetes as HA time series server, a proposal
Kubernetes as HA time series server, a proposal
 
Come funziona la navigazione Web
Come funziona la navigazione WebCome funziona la navigazione Web
Come funziona la navigazione Web
 

Más de Michele Aponte

Frontend Development with Blazor
Frontend Development with BlazorFrontend Development with Blazor
Frontend Development with BlazorMichele Aponte
 
Generazione dinamica della UI con Blazor WebAssembly
Generazione dinamica della UI con Blazor WebAssemblyGenerazione dinamica della UI con Blazor WebAssembly
Generazione dinamica della UI con Blazor WebAssemblyMichele Aponte
 
Intelligenza artificiale nel mondo front-end - CodeGen2021
Intelligenza artificiale nel mondo front-end - CodeGen2021Intelligenza artificiale nel mondo front-end - CodeGen2021
Intelligenza artificiale nel mondo front-end - CodeGen2021Michele Aponte
 
Blazor Focus Week Bari
Blazor Focus Week BariBlazor Focus Week Bari
Blazor Focus Week BariMichele Aponte
 
DevDayNapoli - Blazor: Creare Single Page Application con .NET e WebAseembly
DevDayNapoli - Blazor: Creare Single Page Application con .NET e WebAseemblyDevDayNapoli - Blazor: Creare Single Page Application con .NET e WebAseembly
DevDayNapoli - Blazor: Creare Single Page Application con .NET e WebAseemblyMichele Aponte
 
DevDayBenevento - Blazor: Creare Single Page Application con .NET e WebAseembly
DevDayBenevento - Blazor: Creare Single Page Application con .NET e WebAseemblyDevDayBenevento - Blazor: Creare Single Page Application con .NET e WebAseembly
DevDayBenevento - Blazor: Creare Single Page Application con .NET e WebAseemblyMichele Aponte
 
Cognitive services in Business applications
Cognitive services in Business applicationsCognitive services in Business applications
Cognitive services in Business applicationsMichele Aponte
 
Angular in produzione: Best Practices e Performance Improvements
Angular in produzione:Best Practices e Performance ImprovementsAngular in produzione:Best Practices e Performance Improvements
Angular in produzione: Best Practices e Performance ImprovementsMichele Aponte
 
Da Silverlight a angular senza toccare il backend: fatto!
 Da Silverlight a angular senza toccare il backend: fatto! Da Silverlight a angular senza toccare il backend: fatto!
Da Silverlight a angular senza toccare il backend: fatto!Michele Aponte
 
Realizzare applicazioni desktop con Electron e Angular
Realizzare applicazioni desktop con Electron e AngularRealizzare applicazioni desktop con Electron e Angular
Realizzare applicazioni desktop con Electron e AngularMichele Aponte
 
Angular e asp.net core: un framework sul framework
Angular e asp.net core: un framework sul frameworkAngular e asp.net core: un framework sul framework
Angular e asp.net core: un framework sul frameworkMichele Aponte
 
Realizzare applicazioni desktop con Electron e Angular
Realizzare applicazioni desktop con Electron e AngularRealizzare applicazioni desktop con Electron e Angular
Realizzare applicazioni desktop con Electron e AngularMichele Aponte
 
Sviluppo web con asp.net core 2
Sviluppo web con asp.net core 2Sviluppo web con asp.net core 2
Sviluppo web con asp.net core 2Michele Aponte
 
Un framework sul framework: generare una SPA dinamicamente in Angular
Un framework sul framework: generare una SPA dinamicamente in AngularUn framework sul framework: generare una SPA dinamicamente in Angular
Un framework sul framework: generare una SPA dinamicamente in AngularMichele Aponte
 
Realizzare Single Page Application con Angular2
Realizzare Single Page Application con Angular2Realizzare Single Page Application con Angular2
Realizzare Single Page Application con Angular2Michele Aponte
 

Más de Michele Aponte (20)

Frontend Development with Blazor
Frontend Development with BlazorFrontend Development with Blazor
Frontend Development with Blazor
 
Generazione dinamica della UI con Blazor WebAssembly
Generazione dinamica della UI con Blazor WebAssemblyGenerazione dinamica della UI con Blazor WebAssembly
Generazione dinamica della UI con Blazor WebAssembly
 
La rivoluzione blazor
La rivoluzione blazorLa rivoluzione blazor
La rivoluzione blazor
 
Intelligenza artificiale nel mondo front-end - CodeGen2021
Intelligenza artificiale nel mondo front-end - CodeGen2021Intelligenza artificiale nel mondo front-end - CodeGen2021
Intelligenza artificiale nel mondo front-end - CodeGen2021
 
Blazor Focus Week Bari
Blazor Focus Week BariBlazor Focus Week Bari
Blazor Focus Week Bari
 
DevDayNapoli - Blazor: Creare Single Page Application con .NET e WebAseembly
DevDayNapoli - Blazor: Creare Single Page Application con .NET e WebAseemblyDevDayNapoli - Blazor: Creare Single Page Application con .NET e WebAseembly
DevDayNapoli - Blazor: Creare Single Page Application con .NET e WebAseembly
 
DevDayBenevento - Blazor: Creare Single Page Application con .NET e WebAseembly
DevDayBenevento - Blazor: Creare Single Page Application con .NET e WebAseemblyDevDayBenevento - Blazor: Creare Single Page Application con .NET e WebAseembly
DevDayBenevento - Blazor: Creare Single Page Application con .NET e WebAseembly
 
Cognitive services in Business applications
Cognitive services in Business applicationsCognitive services in Business applications
Cognitive services in Business applications
 
Angular in produzione: Best Practices e Performance Improvements
Angular in produzione:Best Practices e Performance ImprovementsAngular in produzione:Best Practices e Performance Improvements
Angular in produzione: Best Practices e Performance Improvements
 
Da Silverlight a angular senza toccare il backend: fatto!
 Da Silverlight a angular senza toccare il backend: fatto! Da Silverlight a angular senza toccare il backend: fatto!
Da Silverlight a angular senza toccare il backend: fatto!
 
Angular and beyond
Angular and beyondAngular and beyond
Angular and beyond
 
Realizzare applicazioni desktop con Electron e Angular
Realizzare applicazioni desktop con Electron e AngularRealizzare applicazioni desktop con Electron e Angular
Realizzare applicazioni desktop con Electron e Angular
 
Angular e asp.net core: un framework sul framework
Angular e asp.net core: un framework sul frameworkAngular e asp.net core: un framework sul framework
Angular e asp.net core: un framework sul framework
 
Realizzare applicazioni desktop con Electron e Angular
Realizzare applicazioni desktop con Electron e AngularRealizzare applicazioni desktop con Electron e Angular
Realizzare applicazioni desktop con Electron e Angular
 
Sviluppo web con asp.net core 2
Sviluppo web con asp.net core 2Sviluppo web con asp.net core 2
Sviluppo web con asp.net core 2
 
Un framework sul framework: generare una SPA dinamicamente in Angular
Un framework sul framework: generare una SPA dinamicamente in AngularUn framework sul framework: generare una SPA dinamicamente in Angular
Un framework sul framework: generare una SPA dinamicamente in Angular
 
Angular vsr React
Angular vsr ReactAngular vsr React
Angular vsr React
 
Angular 2 on stage
Angular 2 on stageAngular 2 on stage
Angular 2 on stage
 
Realizzare Single Page Application con Angular2
Realizzare Single Page Application con Angular2Realizzare Single Page Application con Angular2
Realizzare Single Page Application con Angular2
 
Angular2 on stage
Angular2 on stageAngular2 on stage
Angular2 on stage
 

Working with http client rest apis and connection availability check

  • 1.
  • 3. 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.
  • 4. Le risorse • REST è caratterizzato dall’esistenza di risorse • Ogni risorsa ha un identificativo unico e possiamo accederci tramite un identificatore globale (che chiamiamo URI)
  • 5. HTTP e REST: Request Verbs
  • 6. 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
  • 7. 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
  • 8. 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
  • 9. 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.
  • 11. 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
  • 12. 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
  • 13. 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