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 Stateless Cacheable Layered system Uniform Interface
Scalability GET
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
HATEOAS Hypermedia as the engine of application state
Example of hypermedia representation (Netflix)
Richardsons maturity model Level 0: The swamp of POX Level 1: Resources Level 2: HTPP Verbs Level 3: Hypermedia Controls Glory of REST
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
WCF ASP.NET Web API
Goal: One HTTP/ REST / Hypermedia API Fx Integrated in ASP.NET: Best of both world
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 Message handlers=>Same Formatters=>Same Operation handlers=>Filters, model binders
DEMO – FILE NEW
Media types & Media Formatters
Built in support for: – XML – JSON – form-urlencoded data Can be extended with custom Media Formatters
DEMO – MEDIA TYPE FORMATTER
Parameter Binding 1.From querystring: using Model binding 2.From body: using Formatters
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 Newtonsoft.Json
Node-style Web API? writing-a-lightweight-web-service-using-webapi-building-blocks.aspx
DEMO – SELF HOSTING
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
OAuth/Claims based security
Open Source:
Some good reading
Thank you! Robert Folkesson | Active Solution