Presentazioni Efficaci e lezioni di Educazione Civica
ASP.NET Web API
1. ASP.NET Web API
Pietro Libro
http://blogs.ugidotnet.org/PietroLibroBlog
pietro.libro@domusdotnet.org
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
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
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
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,
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