SlideShare una empresa de Scribd logo
1 de 22
Agenda










Cosa è un servizio RESTful
Introduzione a ASP.NET WebAPI
Costruire il Database Model
Routing
Versioning
HelpPage
Tools
What’s new in WebAPI 2.1
Cosa è un servizio RESTful


Architettura Stateless che lavora sul protocollo HTTP



Ogni URL rappresenta un risorsa



Usa i metodi HTTP (verbi) per interagire con le risorse



GET – per recuperare una risorsa
 POST – per creare una risorsa
 PUT – per aggiornare una risorsa
 DELETE – per cancellare una risorsa
L’interazione fra il client e le risorse avviene solamente attraverso URL



Supporta JSON e/o XML come formato di scambio dati fra richieste e risposte



I risultati delle operazioni vengono comunicati tramite HTTP Status Code



http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
Introduzione ad ASP.NET Web API


Prima versione con ASP
.NET MVC 4 (2 anni fa)



Può essere considerato un framework per costruire servizi sul protocollo HTTP



Tali servizi possono essere richiamati semplicemente da diversi client come: browser,
smartphones e applicazioni desktop



Supporto nativo a OData



Non fa parte del framework MVC, ma del core di ASP
.NET
WebAPI by example:
ShowRoom
Many thanks to Marco Minerva
Costruire il Database Model
Routing






La base di ASP.NET Web API
Match fra URI e Azioni
Basato su attributi
URI che descrivono risorse o gerarchie di risorse






/Customers/1
/Orders/2
/Customer/1/Orders
/Suppliers/1/Items
Routing


Overloaded URI segments





Multiple parameter type





Orders/1
Orders/Pending

Orders/1
Orders/2014/01/01

Routing costraints



[Route(“orders/{id:int}”]
[Route(“orders/{id:int:min(10)}”]
Versioning




Adesso è diventato molto semplice 
Usa lo stesso “modello” del routing





V1/Orders
V2/Orders
V1/Customers/1
V2/Customers/CUST001
HelpPage






Basate su ASP.NET MVC
Template bootstrap
Si basano sui commenti del codice
Permettono di capire con facilità come devono essere eseguite le
chiamate alle API
Fiddler

http://www.telerik.com/fiddler
What’s new in WebAPI 2.1










Global Error Handling
Attribute Routing Improvements
Help Page Improvements
IgnoreRoute Support
BSON Media-Type Formatter
Better Support for Async Filters
Query Parsing for the Client Formatting Library
Bugfixes
http://www.asp.net/web-api/overview/releases/whats-new-in-aspnet-web-api-21
Resources


ASP.NET WebAPI 2.0 - http://asp.net/web-api



OData – http://www.odata.org



HTTP Status Code - http://www.w3.org/Protocols/rfc2616/rfc2616sec10.html
WebAPI 2.0

Más contenido relacionado

Destacado (7)

Endevines què és?
Endevines què és?Endevines què és?
Endevines què és?
 
Teknik debat
Teknik debatTeknik debat
Teknik debat
 
Visual Studio 2010 shortcut keys
Visual Studio 2010 shortcut keysVisual Studio 2010 shortcut keys
Visual Studio 2010 shortcut keys
 
Social media and crisis communication
Social media and crisis communicationSocial media and crisis communication
Social media and crisis communication
 
ciri pancasila sebagai filsafat
ciri pancasila sebagai filsafatciri pancasila sebagai filsafat
ciri pancasila sebagai filsafat
 
Asp.Net MVC 5
Asp.Net MVC 5Asp.Net MVC 5
Asp.Net MVC 5
 
SQLite - Overview
SQLite - OverviewSQLite - Overview
SQLite - Overview
 

Similar a WebAPI 2.0

Rubrica pubblica ateneo
Rubrica pubblica ateneoRubrica pubblica ateneo
Rubrica pubblica ateneo
dgaglioti
 
Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini
Whymca
 
Web Service
Web ServiceWeb Service
Web Service
pat22cb
 

Similar a WebAPI 2.0 (20)

Applicazioni RESTful con ASP.NET Web Api
Applicazioni RESTful con ASP.NET Web ApiApplicazioni RESTful con ASP.NET Web Api
Applicazioni RESTful con ASP.NET Web Api
 
Net core base
Net core baseNet core base
Net core base
 
RESTful "il web programmabile"
RESTful "il web programmabile"RESTful "il web programmabile"
RESTful "il web programmabile"
 
Web sockets
Web socketsWeb sockets
Web sockets
 
Rubrica pubblica ateneo
Rubrica pubblica ateneoRubrica pubblica ateneo
Rubrica pubblica ateneo
 
Rubrica pubblica ateneo
Rubrica pubblica ateneoRubrica pubblica ateneo
Rubrica pubblica ateneo
 
Creare API pubbliche, come evitare gli errori comuni
 Creare API pubbliche, come evitare gli errori comuni Creare API pubbliche, come evitare gli errori comuni
Creare API pubbliche, come evitare gli errori comuni
 
Microsoft Azure for DreamSpark Academic Tour - 22/01/2016
Microsoft Azure for DreamSpark Academic Tour - 22/01/2016Microsoft Azure for DreamSpark Academic Tour - 22/01/2016
Microsoft Azure for DreamSpark Academic Tour - 22/01/2016
 
ASP.NET Web API
ASP.NET Web APIASP.NET Web API
ASP.NET Web API
 
Wcf data services
Wcf data servicesWcf data services
Wcf data services
 
Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini
 
SVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROIDSVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROID
 
Web services
Web servicesWeb services
Web services
 
Composite Apps
Composite AppsComposite Apps
Composite Apps
 
Composite Application
Composite ApplicationComposite Application
Composite Application
 
Analisi e sviluppo di componenti standard JSR 168 per la realizzazione di Por...
Analisi e sviluppo di componenti standard JSR 168 per la realizzazione di Por...Analisi e sviluppo di componenti standard JSR 168 per la realizzazione di Por...
Analisi e sviluppo di componenti standard JSR 168 per la realizzazione di Por...
 
Web Service
Web ServiceWeb Service
Web Service
 
Asp net (versione 1 e 2)
Asp net (versione 1 e 2)Asp net (versione 1 e 2)
Asp net (versione 1 e 2)
 
[ITA] Introduzione ai web services: SOAP, WSDL, UDDI
[ITA] Introduzione ai web services: SOAP, WSDL, UDDI[ITA] Introduzione ai web services: SOAP, WSDL, UDDI
[ITA] Introduzione ai web services: SOAP, WSDL, UDDI
 
Corso di servlet jsp e pattern
Corso di servlet jsp e patternCorso di servlet jsp e pattern
Corso di servlet jsp e pattern
 

Más de Emanuele Bartolesi

Le novità di Visual Studio 2015 per lo sviluppatore ASP.NET
Le novità di Visual Studio 2015 per lo sviluppatore ASP.NETLe novità di Visual Studio 2015 per lo sviluppatore ASP.NET
Le novità di Visual Studio 2015 per lo sviluppatore ASP.NET
Emanuele Bartolesi
 
Provarsi i vestiti con il kinect
Provarsi i vestiti con il kinectProvarsi i vestiti con il kinect
Provarsi i vestiti con il kinect
Emanuele Bartolesi
 

Más de Emanuele Bartolesi (16)

Creare PWA con Angular 5 e Visual Studio Code
Creare PWA con Angular 5 e Visual Studio CodeCreare PWA con Angular 5 e Visual Studio Code
Creare PWA con Angular 5 e Visual Studio Code
 
Asp.Net Core in Real World
Asp.Net Core in Real WorldAsp.Net Core in Real World
Asp.Net Core in Real World
 
ASP.NET Core 2.0 - Best Practices per le Web API
ASP.NET Core 2.0 - Best Practices per le Web APIASP.NET Core 2.0 - Best Practices per le Web API
ASP.NET Core 2.0 - Best Practices per le Web API
 
Visual Studio 2017 Saturday - Key note
Visual Studio 2017 Saturday - Key noteVisual Studio 2017 Saturday - Key note
Visual Studio 2017 Saturday - Key note
 
Build a daemon with ASP.NET and Graph API
Build a daemon with ASP.NET and Graph APIBuild a daemon with ASP.NET and Graph API
Build a daemon with ASP.NET and Graph API
 
Global Azure Bootcamp - ASP.NET Core & Azure in Real World
Global Azure Bootcamp - ASP.NET Core & Azure in Real WorldGlobal Azure Bootcamp - ASP.NET Core & Azure in Real World
Global Azure Bootcamp - ASP.NET Core & Azure in Real World
 
Works with ASP.NET Core on Linux and Mac
Works with ASP.NET Core on Linux and MacWorks with ASP.NET Core on Linux and Mac
Works with ASP.NET Core on Linux and Mac
 
Le novità di Visual Studio 2015 per lo sviluppatore ASP.NET
Le novità di Visual Studio 2015 per lo sviluppatore ASP.NETLe novità di Visual Studio 2015 per lo sviluppatore ASP.NET
Le novità di Visual Studio 2015 per lo sviluppatore ASP.NET
 
DotNetCampus - Analizzare le performance di un'applicazione asp.net con Glimpse
DotNetCampus - Analizzare le performance di un'applicazione asp.net con GlimpseDotNetCampus - Analizzare le performance di un'applicazione asp.net con Glimpse
DotNetCampus - Analizzare le performance di un'applicazione asp.net con Glimpse
 
Php for ASP.NET Developers
Php for ASP.NET DevelopersPhp for ASP.NET Developers
Php for ASP.NET Developers
 
Analizzare le performance di un'applicazione ASP.NET con Glimpse
Analizzare le performance di un'applicazione ASP.NET con GlimpseAnalizzare le performance di un'applicazione ASP.NET con Glimpse
Analizzare le performance di un'applicazione ASP.NET con Glimpse
 
Azure Media Services & Azure Search
Azure Media Services & Azure SearchAzure Media Services & Azure Search
Azure Media Services & Azure Search
 
NTTsight Academy - App for Office 365 and SharePoint 2013
NTTsight Academy - App for Office 365 and SharePoint 2013NTTsight Academy - App for Office 365 and SharePoint 2013
NTTsight Academy - App for Office 365 and SharePoint 2013
 
Tutto su ASP.NET Identity
Tutto su ASP.NET IdentityTutto su ASP.NET Identity
Tutto su ASP.NET Identity
 
Provarsi i vestiti con il kinect
Provarsi i vestiti con il kinectProvarsi i vestiti con il kinect
Provarsi i vestiti con il kinect
 
SignalR 2.0
SignalR 2.0SignalR 2.0
SignalR 2.0
 

WebAPI 2.0

  • 1.
  • 2. Agenda         Cosa è un servizio RESTful Introduzione a ASP.NET WebAPI Costruire il Database Model Routing Versioning HelpPage Tools What’s new in WebAPI 2.1
  • 3.
  • 4. Cosa è un servizio RESTful  Architettura Stateless che lavora sul protocollo HTTP  Ogni URL rappresenta un risorsa  Usa i metodi HTTP (verbi) per interagire con le risorse  GET – per recuperare una risorsa  POST – per creare una risorsa  PUT – per aggiornare una risorsa  DELETE – per cancellare una risorsa L’interazione fra il client e le risorse avviene solamente attraverso URL  Supporta JSON e/o XML come formato di scambio dati fra richieste e risposte  I risultati delle operazioni vengono comunicati tramite HTTP Status Code  http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
  • 5.
  • 6. Introduzione ad ASP.NET Web API  Prima versione con ASP .NET MVC 4 (2 anni fa)  Può essere considerato un framework per costruire servizi sul protocollo HTTP  Tali servizi possono essere richiamati semplicemente da diversi client come: browser, smartphones e applicazioni desktop  Supporto nativo a OData  Non fa parte del framework MVC, ma del core di ASP .NET
  • 7. WebAPI by example: ShowRoom Many thanks to Marco Minerva
  • 8.
  • 10.
  • 11. Routing     La base di ASP.NET Web API Match fra URI e Azioni Basato su attributi URI che descrivono risorse o gerarchie di risorse     /Customers/1 /Orders/2 /Customer/1/Orders /Suppliers/1/Items
  • 12. Routing  Overloaded URI segments    Multiple parameter type    Orders/1 Orders/Pending Orders/1 Orders/2014/01/01 Routing costraints   [Route(“orders/{id:int}”] [Route(“orders/{id:int:min(10)}”]
  • 13.
  • 14. Versioning   Adesso è diventato molto semplice  Usa lo stesso “modello” del routing     V1/Orders V2/Orders V1/Customers/1 V2/Customers/CUST001
  • 15.
  • 16. HelpPage     Basate su ASP.NET MVC Template bootstrap Si basano sui commenti del codice Permettono di capire con facilità come devono essere eseguite le chiamate alle API
  • 17.
  • 19.
  • 20. What’s new in WebAPI 2.1         Global Error Handling Attribute Routing Improvements Help Page Improvements IgnoreRoute Support BSON Media-Type Formatter Better Support for Async Filters Query Parsing for the Client Formatting Library Bugfixes http://www.asp.net/web-api/overview/releases/whats-new-in-aspnet-web-api-21
  • 21. Resources  ASP.NET WebAPI 2.0 - http://asp.net/web-api  OData – http://www.odata.org  HTTP Status Code - http://www.w3.org/Protocols/rfc2616/rfc2616sec10.html

Notas del editor

  1. oData - c'è il supporto nativo a odata, di cui non possiamo parlare per motivi di tempo, ma lo vedremo brevemente in pratica nella demo