2. Agenda
Pietro Libro pietro.libro@domusdotnetorg - DomusDotNet
REST
Web Api : SOAP & REST
Web Api, definizione di un servizio
Web Api Client
Browser + JQuery
Win 8 App Store
Web Api Security
Web Api Help Page
Web Api Dependency Resolver
3. REST (Representational State Transfer)
Pietro Libro pietro.libro@domusdotnetorg - DomusDotNet
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 Transfer)
Pietro Libro pietro.libro@domusdotnetorg - DomusDotNet
REST prevede:
Stato e funzionalità divise in Risorse
Una Risorsa é unicamente indirizzabile tramite una sintassi
universale (URI)
Le Risorse sono condivise come interfaccia uniforme per il
trasferimento di stato tra client e Risorse (operazioni &
contenuti vincolati)
Si basa su un protocollo:
Client-Server
Stateless
Cachable
A livelli
I sistemi che seguono i principi REST sono definiti "RESTful".
5. REST (Representational State Transfer)
Pietro Libro pietro.libro@domusdotnetorg - DomusDotNet
REST: Risorsa
Le risorse sono accessibili tramite i metodi propri HTTP
ROA (Resource Oriented Architecture)
Utilizza HTTP a livello applicativo
Esalta il Web come piattaforma per l’elaborazione distribuita
Nessua definizione delle interfacce di servizio tipo WSDL
SOAP: Servizio
Metodi -> RPC
SOA (Service Oriented Architecture)
HTTP a livello di trasporto, trasport multiprotocollo
WSDL
6. REST (Representational State Transfer)
Pietro Libro pietro.libro@domusdotnetorg - DomusDotNet
REST: Risorsa
Formato dati non fortemente tipizzato
Diversi formati di rappresentazione (ad esempio JSON)
Consumo dei servizi da qualsiasi piattaforma
SOAP: Servizio
Forte tipizzazione dei dati aderenti ad uno schema
Formato dati XML
Supporto a Sessioni, Routing e Transazioni
7. Web API Client
Pietro Libro pietro.libro@domusdotnetorg - DomusDotNet
Web Browser + Jquery
Applicazioni Web
ASP.NET
PHP
...
Applicazioni Windows
WPF (Windows Presentation Foundation)
Windows 8 App Store
Windows Form
Dispositivi Mobile
Praticamente uutti i client che hanno «accesso» al protocollo
HTTP
8. Toolbox
Pietro Libro pietro.libro@domusdotnetorg - DomusDotNet
.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. Web API Security
Pietro Libro pietro.libro@domusdotnetorg - DomusDotNet
RESTful è Stateless
Nessuna assunzione tra un’invocazione ed un’altra, sono
completamente indipendenti
Autenticazioneautorizzazione ad ogni richiesta
HTTPHTTPS
Come per ASP.NET MVC, «Controller» ed «Action»
supportano:
«[Authorize]»
«[AllowAnonymous]»
11. Web API Security
Pietro Libro pietro.libro@domusdotnetorg - DomusDotNet
Message Handler
Riceve una richiesta HTTP e ritorna una riposta HTTP
I Message Handler 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 API Dependency Resolver
Pietro Libro pietro.libro@domusdotnetorg - DomusDotNet
Dipendenza
«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 API Help Page
Pietro Libro pietro.libro@domusdotnetorg - DomusDotNet
Documentazione delle Web Api
Automatica (via NuGet)
Personalizzabile
GUI
IDocumentationProvider
17. Web API Help Page
Pietro Libro pietro.libro@domusdotnetorg - DomusDotNet
DEMO
18. Cosa non abbiamo visto
Pietro Libro pietro.libro@domusdotnetorg - DomusDotNet
Media Type Formatters
Content Negotation
Testing, Debugging & Tracing
OData & Web API
19. Riferimenti
Pietro Libro pietro.libro@domusdotnetorg - DomusDotNet
ASP.NET
http://www.asp.net/
ASP.NET Web API
http://www.asp.net/web-api
Tutorial
Video
Esempi