SlideShare a Scribd company logo
ASP.NET Web API
            Pietro Libro
http://blogs.ugidotnet.org/PietroLibroBlog
pietro.libro@domusdotnet.org
http://www.linkedin.com/in/pietrolibro




    Web@Work
Web@Work
Agenda
• Web API
  –   SOAP & REST

• Web API Client
  – JQuery

  – Windows (8) Client

• Web API Security

• Web API Dependency Resolver
REST (Representational State                                  Web@Work
 Transfer)
• Da Wikipedia


«Representational state transfer (REST) è un tipo di architettura software per i
sistemi di ipertesto distribuiti come il World Wide Web. I termini
"representational state transfer" e "REST" furono introdotti nel 2000 nella tesi
di dottorato di Roy Fielding, uno dei principali autori delle specifiche
dell'Hypertext Transfer Protocol (HTTP), termine ampiamente usato nella
comunità di Internet»
REST (Representational State                             Web@Work
 Transfer)
• Punti chiave:
  – Risorsa : stato dell’applicazione e funzionalità

  – Ogni risorsa è unicamente indirizzabile tramite una sintassi universale
     (URI)

  – Protocollo:
     •   Client-Server

     •   Stateless

     •   Cachable

     •   A livelli
Web@Work
    REST, SOAP & REST
•   REST -> Risorsa

     – Le risorse sono accessibili tramite operazioni HTTP

     – ROA (Resource Oriented Architecture)

     – HTTP a livello applicativo

     – Esalta la predisposizione del Web come piattaforma per l’elaborazione distribuita

     – Non prevede modalità per descrivere l’interazione con una risorsa (WADL)

•   SOAP -> Servizio

     – Metodi (servizi richiamabili da uno o più client)

     – SOA (Service Oriented Architecture)

     – HTTP come protocollo di trasporto (utilizza anche altri protocolli)

     – Basate su chiamate remote

     – WSDL, Tool per la creazione automatica di Client (dipendenza tra client-server)
Web@Work
    REST, SOAP & REST
•   REST -> Risorsa

     – Non tipizzazione dei dati

     – Differenti formati di rappresentazione (ad esempio JSON)

     – Consumo dei servizi da qualsiasi piattaforma

•   SOAP -> Servizio

     – Forte tipizzazione dei dati

     – Formato dati XML

     – Sessioni, Routing e Transazioni
Web@Work
Web API Story

           WCF                                 ASP.NET




    WCF REST Starter Kit




                                             ASP.NET MVC +
       WCF Web API
                                                 RESTful




                           ASP.NET Web API
Web@Work
    Web API Client
•    Web Browser + Jquery

•    Applicazioni Web

     –   ASP.NET

     –   PHP

     –   ...

•    Applicazioni Window

     –   Windows Form

     –   WPF

     –   Window 8 App

•    Mobile Device

•    Client che abbiano accesso ad Internet e HTTP
Web@Work
 Toolbox
• .NET Framework 4.5
  – Visual Studio 2012

  – Visual Studio Express 2012 for Web

• .NET Framework 4.0
  – Visual Studio 2010 con ASP.NET MVC 4

  – Visual Studio 2010 Developer Express con ASP.NET MVC 4

• Installazione tramite Web Platform Installer
  – http://www.microsoft.com/web/downloads/platform.aspx
ASP.NET Web API               Web@Work




                               DEMO
                  Web API & Web API Client
Web@Work
Web API Security
• RESTful è RESTful => Stateless
  – Non possiamo fare assunzioni tra una chiamata e l’altra, possono
     essere completamente indipendenti l’una dall’altra

  – Bisogna verificare autenticazioneautorizzazione ad ogni richiesta

  – HTTPHTTPS

• Come per ASP.NET MVC, «Controller» ed «Action»
  supportano:
  – [Authorize]

  – [AllowAnonymous]
Web@Work
Web API Security
• Message Handler
  – Riceve una richiesta HTTP e ritorna una riposta HTTP

• I Message Handlers possono lavorare in catena
  – Adatti per cross-cutting concerns (ad esempio Security) a livello HTTP

• Un Message Handler può
  – Leggere e modificare una richiesta

  – Aggiungere Header ad una risposta

  – Validare una richiesta prima che raggiunga un controller
Web@Work
Web API Security
Web@Work
ASP.NET Web API




                  DEMO
                     Security
Web@Work
Web API Dependency Resolver
• Dependency
  – «Oggetto o interfaccia che un oggetto richiede per svolgere il proprio
     lavoro»

• Web API dependency resolver
  – Permette di «iniettare» le dipendenze richieste da un ASP.NET Web
     Api Controller
     •   Un oggetto non è più responsabile di creare da se le dipendenze di cui necessità

     •   Le dipendenze necessarie verranno fornite da «qualcuno» dall’esterno
Web@Work
ASP.NET Web API




                           DEMO
                  Dependency Resolver
Web@Work
 Web API Self Host
• Web API non richiede l’utilizzo esclusivo di IIS

• Possiamo «ospitare» Web API in un processo

• Tutto quello che ci serve:
   – NuGet Packet Manager

   – Microsoft.AspNet.WebApi.SelfHost,
Web@Work
ASP.NET Web API




                        DEMO
                  Web Api Self-Host
Web@Work
Cosa non abbiamo visto
• Media Type Formatters

• Content Negotation

• Testing & Debugging

• OData & Web API
Web@Work
Riferimenti
• ASP.NET http://www.asp.net/

• ASP.NET Web API http://www.asp.net/web-api
   – Tutorial

   – Video

   – Esempi

• «Pro ASP.NET Web API, HTTP Web Services in ASP.NET»
  http://www.apress.com/9781430247258
Web@Work
Grazie agli sponsor
Ad

More Related Content

What's hot (17)

Blazor per uno sviluppatore Web Form
Blazor per uno sviluppatore Web FormBlazor per uno sviluppatore Web Form
Blazor per uno sviluppatore Web Form
Andrea Dottor
 
Introduzione a Ruby On Rails
Introduzione a Ruby On RailsIntroduzione a Ruby On Rails
Introduzione a Ruby On Rails
Luca Mearelli
 
REST API fantastiche e dove trovarle
REST API fantastiche e dove trovarleREST API fantastiche e dove trovarle
REST API fantastiche e dove trovarle
Marco Breveglieri
 
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, Piacenza
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, PiacenzaSviluppo Web con React e Delphi - Seminario Delphi Day 2016, Piacenza
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, Piacenza
Marco Breveglieri
 
.Net 4.0 Preview @ UGIdotNet
.Net 4.0 Preview @ UGIdotNet.Net 4.0 Preview @ UGIdotNet
.Net 4.0 Preview @ UGIdotNet
Mauro Servienti
 
.NET Core, ASP.NET Core e Linux per il Mobile
.NET Core, ASP.NET Core e Linux per il Mobile.NET Core, ASP.NET Core e Linux per il Mobile
.NET Core, ASP.NET Core e Linux per il Mobile
Pietro Libro
 
Applicazioni web con ASP.NET Owin e Katana
Applicazioni web con ASP.NET Owin e KatanaApplicazioni web con ASP.NET Owin e Katana
Applicazioni web con ASP.NET Owin e Katana
Nicolò Carandini
 
Cosa c'è di nuovo in asp.net core 2 0
Cosa c'è di nuovo in asp.net core 2 0Cosa c'è di nuovo in asp.net core 2 0
Cosa c'è di nuovo in asp.net core 2 0
Andrea Dottor
 
ASP.NET Core - dove siamo arrivati
ASP.NET Core - dove siamo arrivatiASP.NET Core - dove siamo arrivati
ASP.NET Core - dove siamo arrivati
Andrea Dottor
 
Cloud Google App Engine Paas
Cloud   Google App Engine PaasCloud   Google App Engine Paas
Cloud Google App Engine Paas
steccami
 
Applicazioni Web ultra-performanti con Vue.js e Delphi
Applicazioni Web ultra-performanti con Vue.js e DelphiApplicazioni Web ultra-performanti con Vue.js e Delphi
Applicazioni Web ultra-performanti con Vue.js e Delphi
Marco Breveglieri
 
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
Pietro Libro
 
ASP.NET MVC: Andare oltre il 100% (Web@work)
ASP.NET MVC: Andare oltre il 100% (Web@work)ASP.NET MVC: Andare oltre il 100% (Web@work)
ASP.NET MVC: Andare oltre il 100% (Web@work)
Giorgio Di Nardo
 
Self hosted Services with .NET OWin
Self hosted Services with .NET OWinSelf hosted Services with .NET OWin
Self hosted Services with .NET OWin
Nicolò Carandini
 
Asp.NET MVC Framework
Asp.NET MVC FrameworkAsp.NET MVC Framework
Asp.NET MVC Framework
DotNetMarche
 
What's new in Asp.Net 4.5 (and WebApi)
What's new in Asp.Net 4.5 (and WebApi)What's new in Asp.Net 4.5 (and WebApi)
What's new in Asp.Net 4.5 (and WebApi)
Luca Milan
 
Integrazione tra SharePoint 2010 e Windows Azure (Azure Day)
Integrazione tra SharePoint 2010 e Windows Azure (Azure Day)Integrazione tra SharePoint 2010 e Windows Azure (Azure Day)
Integrazione tra SharePoint 2010 e Windows Azure (Azure Day)
Giuseppe Marchi
 
Blazor per uno sviluppatore Web Form
Blazor per uno sviluppatore Web FormBlazor per uno sviluppatore Web Form
Blazor per uno sviluppatore Web Form
Andrea Dottor
 
Introduzione a Ruby On Rails
Introduzione a Ruby On RailsIntroduzione a Ruby On Rails
Introduzione a Ruby On Rails
Luca Mearelli
 
REST API fantastiche e dove trovarle
REST API fantastiche e dove trovarleREST API fantastiche e dove trovarle
REST API fantastiche e dove trovarle
Marco Breveglieri
 
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, Piacenza
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, PiacenzaSviluppo Web con React e Delphi - Seminario Delphi Day 2016, Piacenza
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, Piacenza
Marco Breveglieri
 
.Net 4.0 Preview @ UGIdotNet
.Net 4.0 Preview @ UGIdotNet.Net 4.0 Preview @ UGIdotNet
.Net 4.0 Preview @ UGIdotNet
Mauro Servienti
 
.NET Core, ASP.NET Core e Linux per il Mobile
.NET Core, ASP.NET Core e Linux per il Mobile.NET Core, ASP.NET Core e Linux per il Mobile
.NET Core, ASP.NET Core e Linux per il Mobile
Pietro Libro
 
Applicazioni web con ASP.NET Owin e Katana
Applicazioni web con ASP.NET Owin e KatanaApplicazioni web con ASP.NET Owin e Katana
Applicazioni web con ASP.NET Owin e Katana
Nicolò Carandini
 
Cosa c'è di nuovo in asp.net core 2 0
Cosa c'è di nuovo in asp.net core 2 0Cosa c'è di nuovo in asp.net core 2 0
Cosa c'è di nuovo in asp.net core 2 0
Andrea Dottor
 
ASP.NET Core - dove siamo arrivati
ASP.NET Core - dove siamo arrivatiASP.NET Core - dove siamo arrivati
ASP.NET Core - dove siamo arrivati
Andrea Dottor
 
Cloud Google App Engine Paas
Cloud   Google App Engine PaasCloud   Google App Engine Paas
Cloud Google App Engine Paas
steccami
 
Applicazioni Web ultra-performanti con Vue.js e Delphi
Applicazioni Web ultra-performanti con Vue.js e DelphiApplicazioni Web ultra-performanti con Vue.js e Delphi
Applicazioni Web ultra-performanti con Vue.js e Delphi
Marco Breveglieri
 
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
Pietro Libro
 
ASP.NET MVC: Andare oltre il 100% (Web@work)
ASP.NET MVC: Andare oltre il 100% (Web@work)ASP.NET MVC: Andare oltre il 100% (Web@work)
ASP.NET MVC: Andare oltre il 100% (Web@work)
Giorgio Di Nardo
 
Self hosted Services with .NET OWin
Self hosted Services with .NET OWinSelf hosted Services with .NET OWin
Self hosted Services with .NET OWin
Nicolò Carandini
 
Asp.NET MVC Framework
Asp.NET MVC FrameworkAsp.NET MVC Framework
Asp.NET MVC Framework
DotNetMarche
 
What's new in Asp.Net 4.5 (and WebApi)
What's new in Asp.Net 4.5 (and WebApi)What's new in Asp.Net 4.5 (and WebApi)
What's new in Asp.Net 4.5 (and WebApi)
Luca Milan
 
Integrazione tra SharePoint 2010 e Windows Azure (Azure Day)
Integrazione tra SharePoint 2010 e Windows Azure (Azure Day)Integrazione tra SharePoint 2010 e Windows Azure (Azure Day)
Integrazione tra SharePoint 2010 e Windows Azure (Azure Day)
Giuseppe Marchi
 

Similar to ASP.NET Web API (20)

Applicazioni RESTful con ASP.NET Web Api
Applicazioni RESTful con ASP.NET Web ApiApplicazioni RESTful con ASP.NET Web Api
Applicazioni RESTful con ASP.NET Web Api
Pietro Libro
 
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
I.S.I.S. "Antonio Serra" - Napoli
 
Sviluppare Azure Web Apps
Sviluppare Azure Web AppsSviluppare Azure Web Apps
Sviluppare Azure Web Apps
Andrea Dottor
 
Architetture web - Linguaggi e standard - Web server, application server, dat...
Architetture web - Linguaggi e standard - Web server, application server, dat...Architetture web - Linguaggi e standard - Web server, application server, dat...
Architetture web - Linguaggi e standard - Web server, application server, dat...
Fulvio Corno
 
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente
Andrea Dottor
 
Fr01 asp.net web api reloaded
Fr01   asp.net web api reloadedFr01   asp.net web api reloaded
Fr01 asp.net web api reloaded
DotNetCampus
 
ASP.NET 4.6 e ASP.NET 5...l'evoluzione del web
ASP.NET 4.6 e ASP.NET 5...l'evoluzione del webASP.NET 4.6 e ASP.NET 5...l'evoluzione del web
ASP.NET 4.6 e ASP.NET 5...l'evoluzione del web
Andrea Dottor
 
Swagger pertutti
Swagger pertuttiSwagger pertutti
Swagger pertutti
Nicolò Carandini
 
Web dynpro for abap 01
Web dynpro for abap 01Web dynpro for abap 01
Web dynpro for abap 01
Piergiorgio Bossù
 
Crea servizi REST per la tua App con ASP.NET 5
Crea servizi REST per la tua App con ASP.NET 5Crea servizi REST per la tua App con ASP.NET 5
Crea servizi REST per la tua App con ASP.NET 5
Andrea Dottor
 
Asp.net web api reloaded
Asp.net web api reloadedAsp.net web api reloaded
Asp.net web api reloaded
Pietro Libro
 
SUE AGILE Architettura (Italiano)
SUE AGILE Architettura (Italiano)SUE AGILE Architettura (Italiano)
SUE AGILE Architettura (Italiano)
Sabino Labarile
 
Le novita di visual studio 2012
Le novita di visual studio 2012Le novita di visual studio 2012
Le novita di visual studio 2012
Crismer La Pignola
 
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 ANDROID
Luca Masini
 
WeWantWeb - WCF Data Services
WeWantWeb - WCF Data ServicesWeWantWeb - WCF Data Services
WeWantWeb - WCF Data Services
DomusDotNet
 
Powerful asp.net 4 e ie9
Powerful asp.net 4 e ie9Powerful asp.net 4 e ie9
Powerful asp.net 4 e ie9
Stefano Benedetti
 
Sviluppo Web Agile Con MonoRail
Sviluppo Web Agile Con MonoRailSviluppo Web Agile Con MonoRail
Sviluppo Web Agile Con MonoRail
Stefano Ottaviani
 
Net core base
Net core baseNet core base
Net core base
Beniamino Ferrari
 
ASP.NET Core Services e Linux per il Mobile - Pietro Libro - Codemotion Rome...
ASP.NET Core Services e Linux per il Mobile  - Pietro Libro - Codemotion Rome...ASP.NET Core Services e Linux per il Mobile  - Pietro Libro - Codemotion Rome...
ASP.NET Core Services e Linux per il Mobile - Pietro Libro - Codemotion Rome...
Codemotion
 
Applicazioni RESTful con ASP.NET Web Api
Applicazioni RESTful con ASP.NET Web ApiApplicazioni RESTful con ASP.NET Web Api
Applicazioni RESTful con ASP.NET Web Api
Pietro Libro
 
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
I.S.I.S. "Antonio Serra" - Napoli
 
Sviluppare Azure Web Apps
Sviluppare Azure Web AppsSviluppare Azure Web Apps
Sviluppare Azure Web Apps
Andrea Dottor
 
Architetture web - Linguaggi e standard - Web server, application server, dat...
Architetture web - Linguaggi e standard - Web server, application server, dat...Architetture web - Linguaggi e standard - Web server, application server, dat...
Architetture web - Linguaggi e standard - Web server, application server, dat...
Fulvio Corno
 
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente
Andrea Dottor
 
Fr01 asp.net web api reloaded
Fr01   asp.net web api reloadedFr01   asp.net web api reloaded
Fr01 asp.net web api reloaded
DotNetCampus
 
ASP.NET 4.6 e ASP.NET 5...l'evoluzione del web
ASP.NET 4.6 e ASP.NET 5...l'evoluzione del webASP.NET 4.6 e ASP.NET 5...l'evoluzione del web
ASP.NET 4.6 e ASP.NET 5...l'evoluzione del web
Andrea Dottor
 
Crea servizi REST per la tua App con ASP.NET 5
Crea servizi REST per la tua App con ASP.NET 5Crea servizi REST per la tua App con ASP.NET 5
Crea servizi REST per la tua App con ASP.NET 5
Andrea Dottor
 
Asp.net web api reloaded
Asp.net web api reloadedAsp.net web api reloaded
Asp.net web api reloaded
Pietro Libro
 
SUE AGILE Architettura (Italiano)
SUE AGILE Architettura (Italiano)SUE AGILE Architettura (Italiano)
SUE AGILE Architettura (Italiano)
Sabino Labarile
 
Le novita di visual studio 2012
Le novita di visual studio 2012Le novita di visual studio 2012
Le novita di visual studio 2012
Crismer La Pignola
 
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 ANDROID
Luca Masini
 
WeWantWeb - WCF Data Services
WeWantWeb - WCF Data ServicesWeWantWeb - WCF Data Services
WeWantWeb - WCF Data Services
DomusDotNet
 
Sviluppo Web Agile Con MonoRail
Sviluppo Web Agile Con MonoRailSviluppo Web Agile Con MonoRail
Sviluppo Web Agile Con MonoRail
Stefano Ottaviani
 
ASP.NET Core Services e Linux per il Mobile - Pietro Libro - Codemotion Rome...
ASP.NET Core Services e Linux per il Mobile  - Pietro Libro - Codemotion Rome...ASP.NET Core Services e Linux per il Mobile  - Pietro Libro - Codemotion Rome...
ASP.NET Core Services e Linux per il Mobile - Pietro Libro - Codemotion Rome...
Codemotion
 
Ad

Recently uploaded (20)

Il-Manifesto-dellAnima_per_una_rfilessione_personale.pdf
Il-Manifesto-dellAnima_per_una_rfilessione_personale.pdfIl-Manifesto-dellAnima_per_una_rfilessione_personale.pdf
Il-Manifesto-dellAnima_per_una_rfilessione_personale.pdf
MassimoAngeloni1
 
Crisi delle certezzeeeeeeeeeeeeeeeeeee).pdf
Crisi delle certezzeeeeeeeeeeeeeeeeeee).pdfCrisi delle certezzeeeeeeeeeeeeeeeeeee).pdf
Crisi delle certezzeeeeeeeeeeeeeeeeeee).pdf
AuroraCrudeli
 
Copia di FEDERICO I BARBAROSSA e FEDERICO II.pptx
Copia di FEDERICO I BARBAROSSA e FEDERICO II.pptxCopia di FEDERICO I BARBAROSSA e FEDERICO II.pptx
Copia di FEDERICO I BARBAROSSA e FEDERICO II.pptx
marcoloninoti
 
PalazzoPROGETTOmutlimedialemultidisciplinare.pdf
PalazzoPROGETTOmutlimedialemultidisciplinare.pdfPalazzoPROGETTOmutlimedialemultidisciplinare.pdf
PalazzoPROGETTOmutlimedialemultidisciplinare.pdf
ssuserd66503
 
Titolazioneeeeeeeeeeeeeeeeeeeeeeeeeeee.pdf
Titolazioneeeeeeeeeeeeeeeeeeeeeeeeeeee.pdfTitolazioneeeeeeeeeeeeeeeeeeeeeeeeeeee.pdf
Titolazioneeeeeeeeeeeeeeeeeeeeeeeeeeee.pdf
AuroraCrudeli
 
Illuminamento_e_Polarizzazione_aggiornato.pdf
Illuminamento_e_Polarizzazione_aggiornato.pdfIlluminamento_e_Polarizzazione_aggiornato.pdf
Illuminamento_e_Polarizzazione_aggiornato.pdf
ElenaSun6
 
Business Communication Essentials 6th Edition Bovee Test Bank
Business Communication Essentials 6th Edition Bovee Test BankBusiness Communication Essentials 6th Edition Bovee Test Bank
Business Communication Essentials 6th Edition Bovee Test Bank
maiararejona
 
Presentazione Programmazione e Bilancio familiare.pptx
Presentazione Programmazione e Bilancio familiare.pptxPresentazione Programmazione e Bilancio familiare.pptx
Presentazione Programmazione e Bilancio familiare.pptx
firmisergio
 
Marketing Research Asia-Pacific 4th Edition Zikmund Test Bank
Marketing Research Asia-Pacific 4th Edition Zikmund Test BankMarketing Research Asia-Pacific 4th Edition Zikmund Test Bank
Marketing Research Asia-Pacific 4th Edition Zikmund Test Bank
onixxelmik
 
Braving the Semantic Gap Mapping Visual Concepts from Images and Videos 1st E...
Braving the Semantic Gap Mapping Visual Concepts from Images and Videos 1st E...Braving the Semantic Gap Mapping Visual Concepts from Images and Videos 1st E...
Braving the Semantic Gap Mapping Visual Concepts from Images and Videos 1st E...
linde4troutav
 
LA SOLITUDINE DEI NUMERI PRIMIiiiiiiiiiiiii (1).pdf
LA SOLITUDINE DEI NUMERI PRIMIiiiiiiiiiiiii (1).pdfLA SOLITUDINE DEI NUMERI PRIMIiiiiiiiiiiiii (1).pdf
LA SOLITUDINE DEI NUMERI PRIMIiiiiiiiiiiiii (1).pdf
AuroraCrudeli
 
Il-Processo-di-Valutazione-Scolastica.pdf
Il-Processo-di-Valutazione-Scolastica.pdfIl-Processo-di-Valutazione-Scolastica.pdf
Il-Processo-di-Valutazione-Scolastica.pdf
MassimoAngeloni1
 
Deserto dei tartariiiiiiiiiiiiiiiiii.pptx
Deserto dei tartariiiiiiiiiiiiiiiiii.pptxDeserto dei tartariiiiiiiiiiiiiiiiii.pptx
Deserto dei tartariiiiiiiiiiiiiiiiii.pptx
AuroraCrudeli
 
Principles of Information Security 6th Edition Whitman Solutions Manual
Principles of Information Security 6th Edition Whitman Solutions ManualPrinciples of Information Security 6th Edition Whitman Solutions Manual
Principles of Information Security 6th Edition Whitman Solutions Manual
sipkaazoilac5
 
Idrolisi dell’amidooooooooooooooooooo.pdf
Idrolisi dell’amidooooooooooooooooooo.pdfIdrolisi dell’amidooooooooooooooooooo.pdf
Idrolisi dell’amidooooooooooooooooooo.pdf
AuroraCrudeli
 
Scheda del libro Marcovaldoooooooooo.docx
Scheda del libro Marcovaldoooooooooo.docxScheda del libro Marcovaldoooooooooo.docx
Scheda del libro Marcovaldoooooooooo.docx
AuroraCrudeli
 
Dentifricio dell'elefanteeeeeeeeeeee1.docx
Dentifricio dell'elefanteeeeeeeeeeee1.docxDentifricio dell'elefanteeeeeeeeeeee1.docx
Dentifricio dell'elefanteeeeeeeeeeee1.docx
AuroraCrudeli
 
Estrazione DNAAAAAAAAAAAAAAA - Copia.docx
Estrazione DNAAAAAAAAAAAAAAA - Copia.docxEstrazione DNAAAAAAAAAAAAAAA - Copia.docx
Estrazione DNAAAAAAAAAAAAAAA - Copia.docx
AuroraCrudeli
 
Pannelli fotovoltaiciiiiiiiiiiiiiiiiiii.pdf
Pannelli fotovoltaiciiiiiiiiiiiiiiiiiii.pdfPannelli fotovoltaiciiiiiiiiiiiiiiiiiii.pdf
Pannelli fotovoltaiciiiiiiiiiiiiiiiiiii.pdf
AuroraCrudeli
 
Saluteeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
SaluteeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeSaluteeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
Saluteeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
AuroraCrudeli
 
Il-Manifesto-dellAnima_per_una_rfilessione_personale.pdf
Il-Manifesto-dellAnima_per_una_rfilessione_personale.pdfIl-Manifesto-dellAnima_per_una_rfilessione_personale.pdf
Il-Manifesto-dellAnima_per_una_rfilessione_personale.pdf
MassimoAngeloni1
 
Crisi delle certezzeeeeeeeeeeeeeeeeeee).pdf
Crisi delle certezzeeeeeeeeeeeeeeeeeee).pdfCrisi delle certezzeeeeeeeeeeeeeeeeeee).pdf
Crisi delle certezzeeeeeeeeeeeeeeeeeee).pdf
AuroraCrudeli
 
Copia di FEDERICO I BARBAROSSA e FEDERICO II.pptx
Copia di FEDERICO I BARBAROSSA e FEDERICO II.pptxCopia di FEDERICO I BARBAROSSA e FEDERICO II.pptx
Copia di FEDERICO I BARBAROSSA e FEDERICO II.pptx
marcoloninoti
 
PalazzoPROGETTOmutlimedialemultidisciplinare.pdf
PalazzoPROGETTOmutlimedialemultidisciplinare.pdfPalazzoPROGETTOmutlimedialemultidisciplinare.pdf
PalazzoPROGETTOmutlimedialemultidisciplinare.pdf
ssuserd66503
 
Titolazioneeeeeeeeeeeeeeeeeeeeeeeeeeee.pdf
Titolazioneeeeeeeeeeeeeeeeeeeeeeeeeeee.pdfTitolazioneeeeeeeeeeeeeeeeeeeeeeeeeeee.pdf
Titolazioneeeeeeeeeeeeeeeeeeeeeeeeeeee.pdf
AuroraCrudeli
 
Illuminamento_e_Polarizzazione_aggiornato.pdf
Illuminamento_e_Polarizzazione_aggiornato.pdfIlluminamento_e_Polarizzazione_aggiornato.pdf
Illuminamento_e_Polarizzazione_aggiornato.pdf
ElenaSun6
 
Business Communication Essentials 6th Edition Bovee Test Bank
Business Communication Essentials 6th Edition Bovee Test BankBusiness Communication Essentials 6th Edition Bovee Test Bank
Business Communication Essentials 6th Edition Bovee Test Bank
maiararejona
 
Presentazione Programmazione e Bilancio familiare.pptx
Presentazione Programmazione e Bilancio familiare.pptxPresentazione Programmazione e Bilancio familiare.pptx
Presentazione Programmazione e Bilancio familiare.pptx
firmisergio
 
Marketing Research Asia-Pacific 4th Edition Zikmund Test Bank
Marketing Research Asia-Pacific 4th Edition Zikmund Test BankMarketing Research Asia-Pacific 4th Edition Zikmund Test Bank
Marketing Research Asia-Pacific 4th Edition Zikmund Test Bank
onixxelmik
 
Braving the Semantic Gap Mapping Visual Concepts from Images and Videos 1st E...
Braving the Semantic Gap Mapping Visual Concepts from Images and Videos 1st E...Braving the Semantic Gap Mapping Visual Concepts from Images and Videos 1st E...
Braving the Semantic Gap Mapping Visual Concepts from Images and Videos 1st E...
linde4troutav
 
LA SOLITUDINE DEI NUMERI PRIMIiiiiiiiiiiiii (1).pdf
LA SOLITUDINE DEI NUMERI PRIMIiiiiiiiiiiiii (1).pdfLA SOLITUDINE DEI NUMERI PRIMIiiiiiiiiiiiii (1).pdf
LA SOLITUDINE DEI NUMERI PRIMIiiiiiiiiiiiii (1).pdf
AuroraCrudeli
 
Il-Processo-di-Valutazione-Scolastica.pdf
Il-Processo-di-Valutazione-Scolastica.pdfIl-Processo-di-Valutazione-Scolastica.pdf
Il-Processo-di-Valutazione-Scolastica.pdf
MassimoAngeloni1
 
Deserto dei tartariiiiiiiiiiiiiiiiii.pptx
Deserto dei tartariiiiiiiiiiiiiiiiii.pptxDeserto dei tartariiiiiiiiiiiiiiiiii.pptx
Deserto dei tartariiiiiiiiiiiiiiiiii.pptx
AuroraCrudeli
 
Principles of Information Security 6th Edition Whitman Solutions Manual
Principles of Information Security 6th Edition Whitman Solutions ManualPrinciples of Information Security 6th Edition Whitman Solutions Manual
Principles of Information Security 6th Edition Whitman Solutions Manual
sipkaazoilac5
 
Idrolisi dell’amidooooooooooooooooooo.pdf
Idrolisi dell’amidooooooooooooooooooo.pdfIdrolisi dell’amidooooooooooooooooooo.pdf
Idrolisi dell’amidooooooooooooooooooo.pdf
AuroraCrudeli
 
Scheda del libro Marcovaldoooooooooo.docx
Scheda del libro Marcovaldoooooooooo.docxScheda del libro Marcovaldoooooooooo.docx
Scheda del libro Marcovaldoooooooooo.docx
AuroraCrudeli
 
Dentifricio dell'elefanteeeeeeeeeeee1.docx
Dentifricio dell'elefanteeeeeeeeeeee1.docxDentifricio dell'elefanteeeeeeeeeeee1.docx
Dentifricio dell'elefanteeeeeeeeeeee1.docx
AuroraCrudeli
 
Estrazione DNAAAAAAAAAAAAAAA - Copia.docx
Estrazione DNAAAAAAAAAAAAAAA - Copia.docxEstrazione DNAAAAAAAAAAAAAAA - Copia.docx
Estrazione DNAAAAAAAAAAAAAAA - Copia.docx
AuroraCrudeli
 
Pannelli fotovoltaiciiiiiiiiiiiiiiiiiii.pdf
Pannelli fotovoltaiciiiiiiiiiiiiiiiiiii.pdfPannelli fotovoltaiciiiiiiiiiiiiiiiiiii.pdf
Pannelli fotovoltaiciiiiiiiiiiiiiiiiiii.pdf
AuroraCrudeli
 
Saluteeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
SaluteeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeSaluteeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
Saluteeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
AuroraCrudeli
 
Ad

ASP.NET Web API

  • 1. ASP.NET Web API Pietro Libro http://blogs.ugidotnet.org/PietroLibroBlog [email protected] http://www.linkedin.com/in/pietrolibro Web@Work
  • 2. Web@Work Agenda • Web API – SOAP & REST • Web API Client – JQuery – Windows (8) Client • Web API Security • Web API Dependency Resolver
  • 3. REST (Representational State Web@Work Transfer) • Da Wikipedia «Representational state transfer (REST) è un tipo di architettura software per i sistemi di ipertesto distribuiti come il World Wide Web. I termini "representational state transfer" e "REST" furono introdotti nel 2000 nella tesi di dottorato di Roy Fielding, uno dei principali autori delle specifiche dell'Hypertext Transfer Protocol (HTTP), termine ampiamente usato nella comunità di Internet»
  • 4. REST (Representational State Web@Work Transfer) • Punti chiave: – Risorsa : stato dell’applicazione e funzionalità – Ogni risorsa è unicamente indirizzabile tramite una sintassi universale (URI) – Protocollo: • Client-Server • Stateless • Cachable • A livelli
  • 5. Web@Work REST, SOAP & REST • REST -> Risorsa – Le risorse sono accessibili tramite operazioni HTTP – ROA (Resource Oriented Architecture) – HTTP a livello applicativo – Esalta la predisposizione del Web come piattaforma per l’elaborazione distribuita – Non prevede modalità per descrivere l’interazione con una risorsa (WADL) • SOAP -> Servizio – Metodi (servizi richiamabili da uno o più client) – SOA (Service Oriented Architecture) – HTTP come protocollo di trasporto (utilizza anche altri protocolli) – Basate su chiamate remote – WSDL, Tool per la creazione automatica di Client (dipendenza tra client-server)
  • 6. Web@Work REST, SOAP & REST • REST -> Risorsa – Non tipizzazione dei dati – Differenti formati di rappresentazione (ad esempio JSON) – Consumo dei servizi da qualsiasi piattaforma • SOAP -> Servizio – Forte tipizzazione dei dati – Formato dati XML – Sessioni, Routing e Transazioni
  • 7. Web@Work Web API Story WCF ASP.NET WCF REST Starter Kit ASP.NET MVC + WCF Web API RESTful ASP.NET Web API
  • 8. Web@Work Web API Client • Web Browser + Jquery • Applicazioni Web – ASP.NET – PHP – ... • Applicazioni Window – Windows Form – WPF – Window 8 App • Mobile Device • Client che abbiano accesso ad Internet e HTTP
  • 9. Web@Work Toolbox • .NET Framework 4.5 – Visual Studio 2012 – Visual Studio Express 2012 for Web • .NET Framework 4.0 – Visual Studio 2010 con ASP.NET MVC 4 – Visual Studio 2010 Developer Express con ASP.NET MVC 4 • Installazione tramite Web Platform Installer – http://www.microsoft.com/web/downloads/platform.aspx
  • 10. ASP.NET Web API Web@Work DEMO Web API & Web API Client
  • 11. Web@Work Web API Security • RESTful è RESTful => Stateless – Non possiamo fare assunzioni tra una chiamata e l’altra, possono essere completamente indipendenti l’una dall’altra – Bisogna verificare autenticazioneautorizzazione ad ogni richiesta – HTTPHTTPS • Come per ASP.NET MVC, «Controller» ed «Action» supportano: – [Authorize] – [AllowAnonymous]
  • 12. Web@Work Web API Security • Message Handler – Riceve una richiesta HTTP e ritorna una riposta HTTP • I Message Handlers possono lavorare in catena – Adatti per cross-cutting concerns (ad esempio Security) a livello HTTP • Un Message Handler può – Leggere e modificare una richiesta – Aggiungere Header ad una risposta – Validare una richiesta prima che raggiunga un controller
  • 14. Web@Work ASP.NET Web API DEMO Security
  • 15. Web@Work Web API Dependency Resolver • Dependency – «Oggetto o interfaccia che un oggetto richiede per svolgere il proprio lavoro» • Web API dependency resolver – Permette di «iniettare» le dipendenze richieste da un ASP.NET Web Api Controller • Un oggetto non è più responsabile di creare da se le dipendenze di cui necessità • Le dipendenze necessarie verranno fornite da «qualcuno» dall’esterno
  • 16. Web@Work ASP.NET Web API DEMO Dependency Resolver
  • 17. Web@Work Web API Self Host • Web API non richiede l’utilizzo esclusivo di IIS • Possiamo «ospitare» Web API in un processo • Tutto quello che ci serve: – NuGet Packet Manager – Microsoft.AspNet.WebApi.SelfHost,
  • 18. Web@Work ASP.NET Web API DEMO Web Api Self-Host
  • 19. Web@Work Cosa non abbiamo visto • Media Type Formatters • Content Negotation • Testing & Debugging • OData & Web API
  • 20. Web@Work Riferimenti • ASP.NET http://www.asp.net/ • ASP.NET Web API http://www.asp.net/web-api – Tutorial – Video – Esempi • «Pro ASP.NET Web API, HTTP Web Services in ASP.NET» http://www.apress.com/9781430247258