Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

ASP.NET Web Api

Link copiato negli appunti

Con il rilascio di ASP.NET MVC 4 Beta, Microsoft ha "introdotto" una nuova funzionalità : le ASP.NET Web API, attraverso le quali è possibile sviluppare API Web che permettono di esporre servizi e dati sfruttando il "solo" protocollo HTTP (in ottica REST) invece di utilizzare "meccanismi più complicati" come SOAP, Web Services, WCF ecc... Il grosso vantaggio sarà  quello di poter raggiungere in modo più semplice diverse piattaforme e devices al fine di aumentare l'eseperienza dell'utente, così come già  accade con Twitter, Facebook, LinkedIn.

Un po' di storia: WCF inizià a prestare attenzione al mondo HTTP/REST con la versione 3.5 del Framework .Net, introducendo WebHttpBinding, le classi WebHttpBehavior ed il Namespace System.ServiceMode.Web. Con la versione 4.0 del Framework furono aggiunte ed "aggregate" un nuovo insieme di funzionalità  sotto il nome di WCF Web HTTP Services. Nel 2010 nella pagina CodePlex dedicata a WCF iniziarono a comparire tutta una serie di funzionalità  che sarebbero state accorpate all'interno di un nuovo Framework: WCF Web Api con un nuovo modello di programmazione HTTP. Alla domanda, "Quale tecnologia dovremmo utilizzare tra MVC, WCF Web Api e WCF, per sviluppare dei servizi web i cui dati debbano essere consumati da client Javascript?" Microsoft ha deciso di rispondere raccogliendo (parte) di queste tecnologie in una sola: ASP.NET Web API.

Per utilizzare questa nuova funzionalità  abbiamo bisogno per forza di IIS? No, possiamo utilizzarle anche in modalità  self-hosted, ma in questo caso è necessario appoggiarsi all'infrastruttura di trasporto fornita da WCF.

Le ASP.NET Web Api si basano su classi che derivano dalla classe ApiController e per esporre le operazioni (actions) non è necessario utilizzare annotazioni di sorta. Le actions vengono invocate secondo regole di routing che si basano sul match tra URI e le rotte presenti nella route table: ad ognuna corrisponde uno specifico controller ed action.

In un singolo post non è ovviamente possibile riassumere tutte le funzionalità  incluse con le ASP.NET Web Api, ma possiamo provare a riassumerne i punti principali:

  • Query Composition: supporto alle convenzioni OData per l'interrogazione dati nel caso di Web API che restituiscono IQueryable, rendendo facile l'implementazione di Paging e Sorting;
  • Filters: creazione ed uso di filtri per behavior cross-cutting come autenticazione\autorizzazione;
  • Nuovo modello di programmazione HTTP: accesso diretto alle "richieste" (Request) e "risposte" (Reponse) HTTP utilizzando un object model HTTP completamente tipizzato;
  • Testabilità : attraverso due delle nuove classi messe a disposizione, HttpRequestMessage e HttpResponseMessage (vedi punto precente) sarà  più facile eseguire dei test unitari sulle Web Api senza utilizzare specifici framework di Mocking;
  • Content Negotation: client e server potranno decidere quale formato utilizzare per i dati ritornati dalle Web Api. Di default è JSON e XML, ma sarà  possibile utilizzare un proprio formato o sostiture la strategia di "negozazione" utilizzata di default;
  • Supporto ad IoC (Inversion Of Control) per la risoluzione delle dipendenze.

Per iniziare a sviluppare utilizzando la filosofia delle Web Api, sul sito Microsoft di ASP.NET dedicato ad MVC 4 (beta) è possibile trovare diversi tutorial e video (in lingua inglese).

Ti consigliamo anche