260 likes | 351 Vues
Dive into the world of Representational State Transfer (REST) architecture on Microsoft Stack, exploring its principles, evolution, and practical applications in developing Hypermedia APIs with ASP.NET Web API. Learn the essentials of REST, Hypermedia controls, HATEOAS, and more.
E N D
REST på Microsoft-stacken Robert Folkesson Active Solution
REST? • Dissertation by Roy Fielding 2000 • “Architectural Styles and the Design of Network-based Software Architectures” • ReST = Representational State Transfer
Architecturalconstraints • Client–server • Stateless • Cacheable • Layered system • Uniform Interface
Scalability GET http://fabrikam.com/API/User/42
Guiding principles of REST-interfaces • Identificationofresources • Manipulation of resources through representations of these resources • Self-descriptivemessages • Hypermedia as the engine of application state
Richardsons maturitymodel Gloryof REST Level 3: Hypermedia Controls Level 2: HTPP Verbs Level 1: Resources Level 0: The swampof POX
REST on Microsoft – somehistory • 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
http://www.asp.net/web-api • Goal: One HTTP/ REST / Hypermedia API Fx • Integrated in ASP.NET: Best ofbothworld
WCF to ASP.NET Web API WCF Web APIASP.NET Web API Service => Web API controller Operation => Action Service contract => n/a Endpoint => n/a URI templates => ASP.NET Routing Messagehandlers => Same Formatters => Same Operation handlers => Filters, modelbinders
Media types & Media Formatters • Built in support for: • XML • JSON • form-urlencodeddata • Can be extendedwithcustomMedia Formatters
Web API on NuGet • Web API hosted in ASP.NET: • AspNetWebApi • Self-hostedWeb API: • AspNetWebApi.Selfhost • HttpClientincluding XML and JSON formatters: • System.Net.Http.Formatting • JsonValuefor navigating and manipulating JSON: • System.Json
Node-style Web API? http://blogs.msdn.com/b/youssefm/archive/2012/02/24/writing-a-lightweight-web-service-using-webapi-building-blocks.aspx
Web API can be used for all levels Gloryof REST Level 3: Hypermedia Controls Level 2: HTPP Verbs ASP.NET Web API Level 1: Resources Level 0: The swampof POX
Thank you! Robert Folkesson | Active Solution robert.folkesson@activesolution.se | @rfolkes www.robertfolkesson.se