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

WebAPI 2.0

  • 2.
    Agenda         Cosa è unservizio RESTful Introduzione a ASP.NET WebAPI Costruire il Database Model Routing Versioning HelpPage Tools What’s new in WebAPI 2.1
  • 4.
    Cosa è unservizio 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
  • 6.
    Introduzione ad ASP.NETWeb 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 Manythanks to Marco Minerva
  • 9.
  • 11.
    Routing     La base diASP.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    Multipleparameter type    Orders/1 Orders/Pending Orders/1 Orders/2014/01/01 Routing costraints   [Route(“orders/{id:int}”] [Route(“orders/{id:int:min(10)}”]
  • 14.
    Versioning   Adesso è diventatomolto semplice  Usa lo stesso “modello” del routing     V1/Orders V2/Orders V1/Customers/1 V2/Customers/CUST001
  • 16.
    HelpPage     Basate su ASP.NETMVC Template bootstrap Si basano sui commenti del codice Permettono di capire con facilità come devono essere eseguite le chiamate alle API
  • 18.
  • 20.
    What’s new inWebAPI 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

Editor's Notes

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