25
Template designed by ASP.NET Web Api Reloaded Pietro Libro [email protected] blogs.ugidotnet.org/PietroLibroBlog Template designed by

Asp.net web api reloaded

Embed Size (px)

Citation preview

Page 1: Asp.net web api reloaded

Template designed by

ASP.NET Web Api Reloaded

Pietro [email protected]/PietroLibroBlog

Template designed by

Page 2: Asp.net web api reloaded

brought to you by

Page 3: Asp.net web api reloaded

Fincons Group

Primaria società di IT Business Consulting attiva in Europa da oltre 30 anni con uffici in Italia e in Svizzera. Servizi di IT business consulting, system integration di prodotti di vendor internazionali, core business solution development, application management e IT Service in Nearshore.

http://www.finconsgroup.com/

DomusDotNet

User Group romano per lo studio e la divulgazione delle tecnologie .Net

www.domusdotnet.org

chi sono

Page 4: Asp.net web api reloaded

Web API 2.1

• Rest In Pillole

• Web Api Overview

• Attribute Routing

• Cross-Origin Resource Sharing(CORS)

• External Authentication Services

• Web Api & Windows Azure

• Batch Requests

agenda

Page 5: Asp.net web api reloaded

• Architettura per sistemi di ipertesto distribuiti come il WWW

• Principi che delineano come le risorse sono definite ed indirizzate

• Risorse:

• Univocamente indirizzabili tramite URI

• Definiscono stato e funzionalità dell’applicazione

• Basato su protocollo HTTP/HTTPS

• http://it.wikipedia.org/wiki/Representational_State_Transfer

REST in pillole

Page 6: Asp.net web api reloaded

Web Api Overview

Page 7: Asp.net web api reloaded

REST vs SOAP (Classic Web Services)

Fonte : http://jegatech.wordpress.com/2012/10/18/soap-vs-rest/

Page 8: Asp.net web api reloaded

CarRental : Architettura

Car Rental Service (Web API 2.1)

DB

HTML Web Client

Windows Client

Windows Phone 8 Client Windows

AzureAD

Car Rental Data Access

Car RentalDomai

n

...

Page 9: Asp.net web api reloaded

dem

o Web Api & Car Rental

Page 10: Asp.net web api reloaded

• Routing: Match tra URI ed azioni

• (V1) Routing basato su convenzioni

• Difficile (non impossibile ) mappare URI del tipo Cliente/1/Ordini

• NEW! Routing basato su attributi

• URI User Friendly che descrivono risorse e\o gerarchie di risorse

• Api Versioning

• API\V1\Clienti

• API\V2\Clienti

Attribute Routing

Page 11: Asp.net web api reloaded

• NEW! Routing basato su attributi

• Overloaded URI segments

• Ordini/1

• Ordini/Pending

• Multiple Parameter Types

• Ordini/1

• Ordini/29/11/2013

• Routing Constraints

Attribute Routing

Page 12: Asp.net web api reloaded

• «Attivare» Attribute Routing

• «MapHttpAttributeRoutes()» in WebApiConfig

• Uso dell’attributo Route

• Uso dell’attributo RoutePrefix

Attribute Routing

Page 13: Asp.net web api reloaded

dem

o Attribute Routing

Page 14: Asp.net web api reloaded

• Browser Security (Same Origin Policy)

• Evita che una pagina web possa effettuare richieste

Ajax verso un altro dominio

Web API 2: Cross-Origin Resource Sharing

Web API HTMLCross-Origin Request

http://www.domain1.it http://www.domain2.it

WebService WebClient

Page 15: Asp.net web api reloaded

• CORS

• Cross Origin Resource Sharing è uno standard W3C che permette di

«rilassare» il vincolo Same Origin Policy

• Alcune Cross-Origin Request sono accettate, altre sono rifiutate

• NEW! Supporto CORS in ASP.NET Web Api 2 (Package NuGet)

• Abilitazione per Action

• Abilitazione per Controller

• Abilitazione a livello Globale

Web API 2: Cross-Origin Resource Sharing

Web API HTMLCross-Origin Request

http://www.domain1.it http://www.domain2.it

WebService WebClient

Page 16: Asp.net web api reloaded

dem

o «CORS»

Page 17: Asp.net web api reloaded

NEW! External Authentication Services (OAuth\OpenID\Social Media)

• Microsoft (Windows Live ID Account)

• Twitter

• Facebook

• Google

Riduzione tempi di sviluppo nuove applicazioni

• Perché re-inventare la ruota ogni volta ?

• Gli utenti non devono creare l’ennesimo account

Web API 2: External Authentication Services

Page 18: Asp.net web api reloaded

Web API 2: Windows Azure AD

Page 19: Asp.net web api reloaded

ADAL – Active Directory Authentication Library

Esempi:

https://github.com/AzureADSamples

Un ottimo blog di riferimento (Vittorio Bertocci)

http://www.cloudidentity.com/blog/

Web API 2: Windows Azure AD

Page 20: Asp.net web api reloaded

dem

o External

Authentication

Windows Azure AD

Page 21: Asp.net web api reloaded

• Web Api «Batch Requests»

• Più richieste Web Api in singola Request HTTP

• Singola Response HTTP con risposta a tutte le richieste Web Api

• Numero di chiamate al Server ridotte (round-trip) : Performance &

Scalabilità

• Requisito

• Registrare una «Rotta» per il Batch Handler

Web API 2: Batch API

Page 22: Asp.net web api reloaded

dem

o Batch API

Page 23: Asp.net web api reloaded

http://www.asp.net/web-api

http://www.asp.net/vnext/overview/aspnet-web-api

Riferimenti e Codice D’esempio

Page 24: Asp.net web api reloaded

Domande

Page 25: Asp.net web api reloaded

Grazie a tutti per la partecipazione

Riceverete il link per il download a slide e demo via email nei prossimi giorni

Per contattarmi

[email protected]

Grazie