HTML5 & rest services

3,819 views
3,723 views

Published on

Dutch presentation about REST services, HTML5 clients and using SignalR to create HTML clients.

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
3,819
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
26
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

HTML5 & rest services

  1. 1. Maurice de Beijer
  2. 2. Waar gaan we het over hebben Wat zijn REST services Wat is de ASP.NET Web API Hoe kan je een REST service vanuit de browser gebruiken Realtime communicatie
  3. 3. Wie ben ik Maurice de Beijer. The Problem Solver. Microsoft CSD MVP. DevelopMentor instructor. Twitter: @mauricedb of @HTML5SupportNL Blog: http://msmvps.com/blogs/ theproblemsolver/default.aspx Web: http://www.HTML5Support.nl E-mail: mauricedb@computer.org
  4. 4. Wat is REST Representational State Transfer REST is een architectuur voor gedistribueerde applicaties Er is geen REST standaard De HTTP standaard is de basis  Heeft zich door de jaren bewezen
  5. 5. Hypertext Transfer Protocol The Hypertext Transfer Protocol (HTTP) is an application-level protocol for distributed, collaborative, hypermedia informationsystems. It is a generic, stateless, protocol which can be used for many tasks beyond its use for hypertext
  6. 6. REST is niet nieuw Architectural Styles and the Design of Network-based Software Architectures  By Roy Thomas Fielding  Chapter 5 Een van de schrijvers van de HTTP specificaties
  7. 7. Basis begrippen Resource = data  Bv: een product of een klant Representation = het weergave formaat  Bv: XML, JSON  Maar ook een PDF of een vCard
  8. 8. REST versus SOAP REST SOAPStandardized No WS-*Transport HTTP HTTP, FTP, Pipes, MSMQ etcData Format Any XMLReach Very good GoodDevelopment tools Basic GoodFlexibility Flexible RigidScalability Very good ReasonableSecurity HTTP Security WS-SecurityOperations Stateless Often statefull
  9. 9. ASP.NET Web API Onderdeel van ASP.NET MVC 4  Maar ook los te gebruiken  Zelfs buiten ASP.NET Gebruik ApiController als de baseclass  Gewoon de data ipv een ActionResult teruggeven Routing net als normale controllers  Alleen RouteCollection.MapHttpRoute() gebruiken  De standaard route is: "api/{controller}/{id}"
  10. 10. HTTP Methods HTTP methods worden gebruikt om acties aan te geven ASP.NET Web API gebruikt functie namen  Attributen kan eventueel ook Action HTTP Method Create POST Read GET Update (replace) PUT Update (partial) PATCH of MERGE Delete DELETE
  11. 11. HTTP Status Codes Een verplicht onderdeel van elke response  Als alles goed gaat is het 200 OK Ingedeeld in groepen  1-- Informational  2-- Success  3-- Redirection  4-- Client Error  5-- Server Error Binnen de ASP.NET Web API met een HttpResponseMessage aan te geven  Anders is het 200 OK
  12. 12. Resource formats Web API ondersteunt content negotiation  XML, JSON en Form Encoded standaard De client gebruikt de Accept header  De server mag daar van afwijken! Extra formats toe te voegen via MediaTypeFormatter
  13. 13. Pauze
  14. 14. Browsers en REST Soms vergeet een browser de juiste Accept header HTML != HTTP Caching
  15. 15. Accept headers Sommige browsers claimen alles als image te kunnen t0nen  De Accept header mist of bevat */* Via de URL aangeven wat het gewenste formaat is  GET /api/books/1?$format=jpeg In de MediaTypeFormatter een AddQueryStringMapping () doen.
  16. 16. HTML != HTTP De HTTP standaard ondersteunt veel request methods als GET, PUT, POST, DELETE etc  Maar de browser alleen GET en POST Gebruik het XMLHttpRequest  Maar dan via jQuery.ajax()
  17. 17. Caching Caching maakt het web schaalbaar  En kan ook helpen binnen onze applicaties Standaard wordt data niet gecached bij de Web API  En dat is een goede zaak want browsers hebben verschillende defaults Caching is moeilijk goed te krijgen  Caching instructies zijn alleen hints
  18. 18. Cross-origin resource sharing Een XmlHttpRequest mag alleen naar de oorspronkelijke server  JSONP is een oplossing maar kan alleen GET CORS maakt het mogelijk om naar een andere server te gaan  De service voegt een extra HTTP header toe  Als die ontbreekt blokeert de browser de response
  19. 19. Real time communications Waarom wachten tot een gebruiker de pagina ververst?  De server kan wijzigingen ook naar de browser sturen In HTML5 hebben we WebSockets  Maar de ondersteuning is nog beperkt SignalR is een goede communicatie library  Gebruikt WebSockets indien mogelijk  Gebruikt anders een fallback communicatie
  20. 20. Conclusie REST services zijn zeer flexibel  En dat is maar goed ook met alle tablets en smartphones De ASP.NET Web API is een prima framework  En er zijn genoeg alternatieven Browsers hebben hun kuren  Test met verschillende browsers Real time communicatie heeft de toekomst
  21. 21. Vragen ?mauricedb@computer.org

×