Crea servizi REST per la tua App con ASP.NET 5

29
Mobile Camp 2015 Crea servizi REST per la tua App con ASP.NET 5 Andrea Dottor – Microsoft MVP ASP.NET/IIS twitter: @dottor email: [email protected]

Transcript of Crea servizi REST per la tua App con ASP.NET 5

Mobile Camp 2015

Crea servizi REST per la tua App con ASP.NET 5

Andrea Dottor – Microsoft MVP ASP.NET/IIS

twitter: @dottoremail: [email protected]

Mobile Camp 2015

App connesse

Standard di mercato

ASP.NET 5

ASP.NET 5 Web API

Alcuni suggerimenti

Agenda

Mobile Camp 2015

App Connesse

Mobile Camp 2015

• dati sempre aggiornati, senza il bisogno di ripubblicare l'App.

• dinamicità dei contenuti

• interazione tra utenti

App connesse – perchè?

Mobile Camp 2015

Scrivere bene i servizi permette di ridurre i tempi di scrittura dell'App.

I servizi permettono di condividere/centralizzare parte della logica applicativa.

Le App possono essere scritte in linguaggi/tecnologie differenti, e dobbiamo ricordarcelo quando realizziamo i servizi

App connesse

Mobile Camp 2015

Servizi SOAP (.asmx)• Anche se adottano uno standard non sono facilmente consumabili da

qualsiasi piattaforma

Servizi WCF• Troppa configurazione

• Poco flessibili

ASP.NET Web API• Facili da utilizzare

• Il massimo della flessibilità

Cosa abbiamo oggi?

Mobile Camp 2015

cosa usano i maggiori "player"?

• HTTP

• JSON

• Servizi RESTful

• Nessuno usa SOAP

• In pochi XML

Lo standard di mercato

Mobile Camp 2015

Scrivere servizi RESTful permette ai nostri servizi di essere consumati da qualiasi tecnologia

Da qualsiasi linguaggio/piattaforma riusciamo a fare delle richieste HTTP

Sfruttando le classiche porte 80 e 443, non abbiamo problemi di firewall, in quanto "solitamente" sono aperte

RESTful

Mobile Camp 2015

ASP.NET 5

Mobile Camp 2015

Mobile Camp 2015

ASP.NET 5 apre le porte a nuove possibilità

Template/progetto più semplice

ASP.NET MVC e ASP.NET Web API finalmente assieme

Non più solo per Server Windows

Non più vincolato ad essere sviluppato su SO Windows

ASP.NET 5

Mobile Camp 2015

File di progetto in JSON• project.json

Configurazione in JSON• config.json

Packages esterni in JSON• package.json

Cartella wwwroot contiene i file statici del progetto

Integrazione con i più usati Web Development Tools (Bower, Grunt and Gulp)

ASP.NET 5 - Nuova struttura di progetto

Mobile Camp 2015

E' disponibile un template di progetto con tutte le referenze necessarie

(scordatevi il template di progetto a cui eravamo/siamo abituati)

Progetto di partenza ridotto all'essenziale

ASP.NET 5 - Web API

Mobile Camp 2015

Il Web API Controller eredita dalla stessa classe base "Controller" da cui eredita anche il controller MVC

Uso dei RouteAttributes per centralizzare tutta la logica nel singolo controller

ASP.NET 5 - Web API - Controller

Mobile Camp 2015demoASP.NET 5 Web API

Mobile Camp 2015

Visual Studio Code

Mobile Camp 2015

Visual Studio Code permette lo sviluppo di soluzioni ASP.NET 5 utilizzando SO Windows, Mac e Linux https://code.visualstudio.com/

Basato su OmniSharp e Atom Editor

E' free

Ha l'intellisense completo

Integrato con Git

Sviluppo su MAC

Mobile Camp 2015

Building ASP.NET 5 Applications with Visual Studio Code

https://code.visualstudio.com/Docs/ASPnet5

Il debug di applicazioni ASP.NET 5 non è ancora implementato, ma è in arrivo

Visual Studio Code e ASP.NET 5

Mobile Camp 2015

Yeoman generator for ASP.NET 5 apps

Mobile Camp 2015demoVisual Studio Code on MAC

Mobile Camp 2015

Alcuni suggerimenti

Mobile Camp 2015

Usare correttamente gli HTTP-Methods per mappare le azioni:

• GET /products Retrieves a list of products

• GET /products/12 Retrieves a specific product

• POST /products Creates a new product

• PUT /products/12 Updates product #12

• PATCH /products/12 Partially updates product #12

• DELETE /products/12 Deletes product #12

Uso dei Http-methods

Mobile Camp 2015

Utilizzare gli Status-Code per gestire correttamente gli errori

Lanciare un'eccezione ritorna sempre un codice 500

• 400 bad request: quando i parametri in ingresso non corrispondo a quelli voluti

• 401 not authorized: mancanza di permessi

• 404 not found: quanto non trovate una risorsa

• 500 internal server error: un errore generato dal/nel vostro codice

Gestione degli errori

Mobile Camp 2015

Versionate le vostre API per mantenere compatibilità con le applicazioni in produzione

Es: api/v1/products

Facilmente implementabile con l'uso di Rounting e dei Namespaces

Version your API

Mobile Camp 2015

Esponete dei Model studiati per la vostra app (o per chi li deve utilizzare)

Non esponete le stesse classi che usate per la persistenza.• Spesso hanno informazioni che non servono all'app

• Minori dati equivale a minor peso. Maggiore velocità nel download

Ricordatevi dell'autenticazione

Appoggiatevi agli standard di mercato: JSON, HTTP, OAuth, OData

Alcuni suggerimenti

Mobile Camp 2015demoVersioning, uso dei Model

Mobile Camp 2015

Per testare le API rest:

• Fiddlerhttp://www.telerik.com/fiddler

• Postmanhttps://www.getpostman.com/

Tools

feedback

10

Andrea Dottor{ consulenza e viluppo software }

Microsoft MVP ASP.NET/IIS

Email: [email protected]

Website: http://www.dottor.net

Blog: http://blog.dottor.net

Twitter: http://twitter.com/dottor

Contatti / links

Mobile Camp 2015Domande?