Probabilmente, la maggior parte di voi conosce Syncfusion per il loro fantastico e GRATUITO MetroStudio, uno strumento raccoglitore di icone con più di 2500 icone per app Windows Phone/Windows Store. Ma l'offerta GRATUITA di Syncfusion non si ferma qui: pubblicano periodicamente interessanti articoli e una delle più grandi e crescenti collezioni di e-book tecnici, la serie " Succinctly", che copre maggiormente le tecnologie Microsoft, ma non solo quelle. Appena qualche giorno fa, un nuovo e-book è stato pubblicato: " ASP.NET Web API Succinctly", scritto dal nostro connazionale Web Architect Emanuele DelBono.
Il libro è una panoramica sulla tecnologia Microsoft ASP.NET Web API, un nuovo framework web basato su ASP.NET MVC, introdotto da Microsoft per creare facilmente potenti servizi basati su HTTP, che stanno diventando sempre più un requisito per le aziende. Qualche settimana fa, il framework è stato aggiornato con il rilascio di Microsoft ASP.NET Web API 2, ma i concetti base sono sempre gli stessi, così, se volete partire dalle basi e imparare a costruire le vostre potenti Web API, il libro è un ottimo punto di partenza. In pieno obiettivo "Succinctly", il libro è un concentrato tecnico che introduce la maggior parte degli argomenti richiesti in meno di 100 pagine.
Vediamone i contenuti (in inglese).
- Capitolo 1, About REST, contiene una breve introduzione all'architettura HTTP RES, descrivendo quali sono i principi di base e il quadro generare di un'applicazione REST, e come si possono ottenere queste funzionalità sfruttando il protocollo HTTP e i suoi metodi.
- Capitolo 2, Hello Web API, guida lo sviluppatore in un semplice (ma completo) progetto Web API, usando Visual Studio 2012 e il modello di progetto ASP.NET MVC 4. Alla fine, lo sviluppatore saprà come iniziare un progetto e testarlo usando il browser.
- Capitolo 3, The Life of a Request, entra nel dettaglio di una tipica richiesta Web API da parte di un client, con l'obiettivo di dare un'immagine di alto livello dei componenti principali di ASP.NET che stanno dietro al framework Web API: sistema di hosting, gestore dei messaggi e controller. Tutti questi componenti saranno poi analizzati uno ad uno nei capitoli seguenti.
- Capitolo 4, The Routing System, descrive l'inizio di ogni richiesta Web API, evidenziando le differenze tra ASP.NET MVC e ASP.NET Web API. Quindi una serie di esempi mostrano come definire route personalizzate e loro proprietà.
- Capitolo 5, The Controller, descrive l'elemento principale di ogni progetto Web AP: il controller (e le sue action). Inizia analizzando le operazioni CRUD predefinite (GET, POST, PUT, DELETE) e quindi fa vedere come si possono definire azioni personalizzate. Include anche un'interessante sezione sul Model Binding, che è un meccanismo automatico che converte le richieste HTTP in oggetti .NET completi.
- Capitolo 6, Model Validation, parla del meccanismo integrato di validazione, basato su attributi e Model State, il quale permette agli sviluppatori di validate i loro modelli senza modificare il codice esistente.
- Capitolo 7, Content Negotiation, riguarda un importante concetto di un'API REST reale: rende possibile l'esposizione di una risorsa in un numero differente di formati, lasciando al client la decisione su quale sia meglio utilizzare. ASP.NET Web API ha già di suo un supporto per un certo numero di formati predefiniti (XML, JSON, Form URL Encoded), e questo capitolo fa vedere come implementare dei gestori personalizzati, con un esempio pratico che trasforma una risorsa in una immagine PNG, in modo che la rappresentazione in immagine della risorsa possa essere resa disponibile ad un client.
- Capitolo 8, Message Handlers, ritorna ai concetti presentati nel capitolo 3, analizzando con maggior dettaglio come i messaggi HTTP vengono gestiti nella pipeline ASP.NET. In aggiunta, fa vedere come creare dei gestori di messaggi personalizzati, per soddisfare eventuali requisiti applicativi non gestiti da quelli predefiniti (es. header personalizzati/log/autenticazione/ecc.).
- Capitolo 9, Security, continua dal capitolo precedente e mostra come creare dei gestori personalizzati per gestire alcuni aspetti di sicurezza delle API, come autenticazione e autorizzazione. Un esempio completo fa vedere come implementare la Basic Authentication, mentre Token Authentication (OpenID, OAuth) sono solo menzionate e vengono indicati alcuni riferimenti ad altre fonti e progetti. La sicurezza è un soggetto complesso, e come potete immaginare, un singolo capitolo è troppo corto per essere esaustivo. In ogni caso, tutto ciò di cui si ha bisogno per partire, è chiaramente descritto.
- Capitolo 10, OData, presenta il supporto integrato di ASP.NET Web API per Open Data Protocol, un protocollo web progettato da Microsoft con l'obiettivo di creare una nuova modalità di interrogazione e aggiornamento dei dati su HTTP. Inizia dalle basi, come configurare un progetto Web API, e poi passa in rassegna i metodi principali che possono essere usati per filtrare i dati (order by, top, filter, skip).
- Capitolo 11, Hosting, si concentra sulle opzioni che gli sviluppatori hanno per pubblicare un progetto Web API: uno è lo standard IIS, che qui non è descritto. Il secondo, invece, è già conosciuto agli sviluppatori WCF ed è chiamato "self-hosting", e ora è disponibile anche per le ASP.NET Web API: praticamente, questo si traduce in implementare un'applicazione console (o un servizio Windows, o una qualunque altra applicazione eseguibile) che ospiterà le API. Una terza opzione, "in-memory hosting", rappresenta un utile metodo per il testing delle API, che sarà descritto nell'ultimo capitolo.
- Capitolo 12, Testing, presenta l'architettura di test disponibile in ASP.NET Web API, in gran parte ereditata da ASP.NET MVC: questo permette agli sviluppatori di adottare unit-testing e sviluppo test-driven. Il capitolo descrive le migliori pratiche architetturali da adottare per sviluppare una soluzione testabile, iniziando dalle differenze tra unit test e test di integrazione e come creare architetture disaccoppiate sfruttando la dependency injection. Quindi fa vedere come unit-testare un controller and come svolgere test di integrazione usando la funzionalità di "in-memory hosting" presentata nel capitolo 11.
- Capitolo 13, Appendix A: HTTP Status Codes, contiene un utile elenco dei principali HTTP Status Codes, descritti in dettaglio e che dovrebbero essere usati in una RESTful Web API ben progettata.
In conclusione, il libro è una bella introduzione allo sviluppo di Web API e delle loro funzionalità. Non è un libro di riferimento (in quanto non era il suo obiettivo esserlo). Però è il migliore e-book gratuito per chi inizia a sviluppare Web API ed è un'interessante lettura per le persone che già sviluppano API REST con altre tecnologie. E' pieno di esempi di codice commentati che possono davvero aiutare a partire fin da subito con la giusta architettura per un prossimo progetto Web API. Cosa state aspettando? Andate sul sito di Syncfusion e scaricatelo!