Sviluppare servizi REST per il web 2.0 con WCF

di Cristian Civera, in Windows Communication Foundation,

Con il termine web 2.0 si intende indicare un nuovo modo di sfruttare le tecnologie già esistenti per fornire una migliore e ricca esperienza su internet. Di fatto vuol dire utilizzare in modo completo gli standard ad essi dedicati, come il protocollo HTTP, l'HTML, CSS e JavaScript. AJAX non è altro che un nome per riassumere l'uso di queste tecnologie per rendere più dinamiche le pagine internet, a volte anche rimpiazzando quelle tipologie di applicazioni web che solitamente si è più portati a sviluppare in Flash o in Silverlight.

Il web 2.0 non è inteso solamente come tecnologie fini all'applicazione stessa, ma anche messe a disposizione per fruire delle informazioni con alternative all'HTML. Si espongono quindi servizi che possono essere consumati tramite HTTP mediante principalmente due tecniche:

  • l'uso dei metodi HTTP (GET/POST/PUT/DELETE) per rappresentare ed eseguire operazioni, in genere CRUD in virtù dei significati del metodi;
  • l'uso di SOAP e WS-* per effettuare richieste e ottenere risposte in XML.

La prima tecnica semplifica notevolmente l'approccio, rendendolo più manuale e personalizzabile. Il contenuto della richiesta e della risposta, la gestione degli errori, l'autenticazione sono aspetti demandati allo sviluppatore che deve fornire l'opportuna documentazione che le terze parti possono sfruttare.

Con SOAP e WS-* si sfruttano una serie di standard che definiscono molteplici aspetti, tra cui l'autenticazione, le policy di sicurezza, la gestione di transazioni, la codifica, e demandano allo sviluppatore, grazie ai framework per essi costruiti, solo la definizione della struttura dati, anch'essa definita mediante uno standard: XSD.

WCF come framework

In questo articolo si affronta la prima tecnica, la quale si presta maggiormente per la definizione di servizi che vengono poi consumati tramite AJAX, cioè da una pagina HTML. Per farlo si sfrutta un framework, di nome WCF (Windows Communication Foundation), nato per facilitare lo scambio di informazioni e la definizione di servizi. Con questo termine si indica qualcosa di molto generico che può avere un ampio significato per lo scambio di dati tra oggetti, tra AppDomain, tra processi, o tra macchine. Tutto questo fa quindi capire che WCF è un motore e non importa il mezzo di trasporto (HTTP, TCP, MSMQ, altri protocolli, altre astrazioni), ne la codifica che si utilizza (testo, XML, json, binario, altre codifiche), ne dove si trovano le informazioni.

Per questo motivo dalla versione 4.0 del .NET Framework, WCF si è arricchito di strumenti per supportare lo sviluppo di servizi REST/POX. Ciò significa che è in grado di sfruttare HTTP come mezzo di trasporto e la serializzazione dei dati (la trasformazione delle informazioni) in JSON o in XML. WCF non è l'unico strumento per creare servizi di questo genere e già si è avuto modo di parlare di ASP.NET MVC, così come in un futuro articolo si parla di ASP.NET. In questo articolo si propone l'uso di WCF perché presenta numerosi vantaggi:

  • è sufficiente un solo skill per realizzare ogni genere di servizio;
  • una volta sviluppato un servizio questo può essere consumato non solo tramite REST, ma anche con altre metodologie (feed RSS, SOAP, altro) arricchendolo di funzionalità che non sono possibili tramite REST (ad esempio callback di notifiche);
  • permette una migliore gestione del versioning;
  • non è strettamente legato ad ASP.NET;
  • permette una gestione modulare di tutta la pipeline di gestione di una richiesta;
  • è possibile sviluppare un servizio ignorando completamente la parte HTTP. Un servizio può essere sottoposto infatti a unit test;
  • WCF fornisce una serie di automatismi di generazione codice javascript e HTML per supportare facilmente client AJAX.

Illustrato le caratteristiche principali del framework, è bene cominciare a capire come sviluppare un servizio REST /POX, dando per scontato che si conoscano le basi di WCF, affrontate nell'articolo introduttivo. L'esempio che si vuole sviluppare in questo articolo pone la realizzazione di un servizio di nome BookService per l'interrogazione e la manipolazione di un database di libri.

9 pagine in totale: 1 2 3 ... 6 7 8 9

Attenzione: Questo articolo contiene un allegato.

Contenuti dell'articolo

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti