REST på Microsoft- stacken

26
REST på Microsoft- stacken Robert Folkesson Active Solution

description

REST på Microsoft- stacken. Robert Folkesson. Active Solution. Who AM I?. REST?. Dissertation by Roy Fielding 2000 “Architectural Styles and the Design of Network-based Software Architectures” ReST = Representational State Transfer. Architectural constraints. Client –server - PowerPoint PPT Presentation

Transcript of REST på Microsoft- stacken

Page 1: REST  på  Microsoft- stacken

REST på Microsoft-stackenRobert FolkessonActive Solution

Page 2: REST  på  Microsoft- stacken

WHO AM I?

Page 3: REST  på  Microsoft- stacken

REST?• Dissertation by Roy Fielding 2000• “Architectural Styles and the Design

of Network-based Software Architectures”

• ReST = Representational State Transfer

Page 4: REST  på  Microsoft- stacken

Architectural constraints• Client–server• Stateless• Cacheable• Layered system• Uniform Interface

Page 5: REST  på  Microsoft- stacken

Scalability

GET http://fabrikam.com/API/User/42

Page 6: REST  på  Microsoft- stacken

Guiding principles of REST-interfaces• Identification of resources• Manipulation of resources through

representations of these resources• Self-descriptive messages• Hypermedia as the engine of

application state

Page 7: REST  på  Microsoft- stacken

HATEOASHypermedia as the engine of application state

Page 8: REST  på  Microsoft- stacken

Example of hypermedia representation (Netflix)

Page 9: REST  på  Microsoft- stacken
Page 10: REST  på  Microsoft- stacken

Richardsons maturity model

Level 0: The swamp of POX

Level 1: Resources

Level 2: HTPP Verbs

Level 3: Hypermedia Controls

Glory of REST

Page 11: REST  på  Microsoft- stacken

REST on Microsoft – some history• WCF pre-3.5: painful…• WCF 3.5: WebHttpBinding. • WCF REST Starter Kit (no longer

supported)• WCF Data Services (OData)• WCF Web API - Preview 1 - 6

Page 12: REST  på  Microsoft- stacken

WCF ASP.NET Web API

Page 13: REST  på  Microsoft- stacken

http://www.asp.net/web-api• Goal: One HTTP/ REST / Hypermedia API Fx• Integrated in ASP.NET: Best of both world

Page 14: REST  på  Microsoft- stacken

WCF to ASP.NET Web APIWCF Web APIASP.NET Web API

Service => Web API controllerOperation => ActionService contract => n/aEndpoint=> n/aURI templates => ASP.NET RoutingMessage handlers => SameFormatters => SameOperation handlers => Filters, model binders

Page 15: REST  på  Microsoft- stacken

DEMO – FILE NEW

Page 16: REST  på  Microsoft- stacken

Media types & Media Formatters

HTTP/1.1 200 OK Content-Length: 95267 Content-Type: image/png

Accept: text/html,application/xhtml+xml,application/xml

Page 17: REST  på  Microsoft- stacken

Media types & Media Formatters • Built in support for: – XML– JSON– form-urlencoded data

• Can be extended with custom Media Formatters

Page 18: REST  på  Microsoft- stacken

DEMO – MEDIA TYPE FORMATTER

Page 19: REST  på  Microsoft- stacken

Web API on NuGet• Web API hosted in ASP.NET:

– AspNetWebApi• Self-hosted Web API:

– AspNetWebApi.Selfhost• HttpClient including XML and JSON formatters:

– System.Net.Http.Formatting• JsonValue for navigating and manipulating JSON:

– System.Json

Page 20: REST  på  Microsoft- stacken

Node-style Web API?LiteWebServer server = new LiteWebServer("http://localhost"); server.Get("/Hello", (r) => new HttpResponseMessage() { Content = new StringContent("Hello World!") }); server.Post("/Echo", (r) => new HttpResponseMessage() { Content = new StringContent( r.Content.ReadAsStringAsync().Result) }); server.Open();

http://blogs.msdn.com/b/youssefm/archive/2012/02/24/writing-a-lightweight-web-service-using-webapi-building-blocks.aspx

Page 21: REST  på  Microsoft- stacken

DEMO – SELF HOSTING

Page 22: REST  på  Microsoft- stacken

Web API can be used for all levels

Level 0: The swamp of POX

Level 1: Resources

Level 2: HTPP Verbs

Level 3: Hypermedia Controls

Glory of REST

ASP.

NET

Web

API

Page 23: REST  på  Microsoft- stacken

Some good reading

Page 24: REST  på  Microsoft- stacken

Nextperience for a connected world with ASP.NET Web API

Page 25: REST  på  Microsoft- stacken

Thank you!

Robert Folkesson | Active [email protected] | @rfolkes

www.robertfolkesson.se

Page 26: REST  på  Microsoft- stacken