REST FundamentalsReady to think web scale?Daniel Marbachplanetgeek.ch / dotnet-zentral.ch@danielmarbach
www.bbv.chDocumentationinformation
www.bbv.chI can’t!
www.bbv.chIt changed everything
www.bbv.chSuccess Story?
www.bbv.chResource
www.bbv.chIdentifierUniformResourceIdentifier
www.bbv.chMetadataUniformResourceIdentifiereTagCaching…
www.bbv.chMetadataUniformResourceIdentifiereTagCaching…
www.bbv.chRepresentationsUniformResourceIdentifiereTagCaching…
www.bbv.chVerbs & CodesUniformResourceIdentifiereTagCaching…HEADTRACECONNECT200404201
www.bbv.chRESTaurant Demo
www.bbv.chKey Concept
www.bbv.chConstraints =REST
www.bbv.ch=RESTfulI obey…I obey all constraintsI obey all constraintsI obey…
www.bbv.chHypermedia
www.bbv.chThreeTwoOneZeroMaturity Model
www.bbv.chHypermediaHTTP VerbsResourcesPlain old XMLLevel Zero
www.bbv.chHypermediaHTTP VerbsResourcesPlain old XMLLevel One
www.bbv.chHypermediaHTTP VerbsResourcesPlain old XMLLevel Two
www.bbv.chHypermediaHTTP VerbsResourcesPlain old XMLLevel Three
www.bbv.chWhat level is this?
www.bbv.chBacklog Demo
www.bbv.chThere is more!
www.bbv.chREST FundamentalsEnjoy the REST of the forum;)Daniel Marbachplanetgeek.ch / dotnet-zentral.ch@danielmarbach
Upcoming SlideShare
Loading in...5
×

REST Fundamentals

504

Published on

This is the long version of my REST fundamentals talk. The handout can be found here http://www.planetgeek.ch/2012/11/27/rest-fundamentals/

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
504
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • KönntihreucheinLebenohne die unglaublicheMenge an Informationenim Web nochvorstellen?
  • Ichnicht!
  • WennichmeinVerhaltenanschaue:Lese RSS Feeds, BucheZugticketsüber Browser oder AppDas Web verändertewiewirInformationenproduzierenoderkonsumierendramatisch
  • Was macht das Web eineerfolgreicheApplikationsplattform?Architekturnichtsweiteresalstausende von einfachenInteraktionenzwischenAgenten und RessourcenNutzen HTTP und URI alsTechnologie
  • SchlüsselkonzeptoderFundamentalerBausteinFast alleskannalsRessourcemodeliertwerdenWirdzur Manipulation zurVerfügunggestelltRessource != Datenbankentität
  • Für die Manipulation brauchtes Resource Identifiers (URI = Uniform Resource Identifier)EindeutigadressierbarURIs und Ressourcen = Many to OneMehrere URIs pro Ressource (http://..., file://...)
  • MetadatenInformationenüberAufenthaltsort, Alternative Formate, Alter, oderEntitätsinformationenWichtigerAspektfürSkalierbarkeithierzufinden = CachingErlaubtKopien an mehrerenOrtenzuspeichern (auf Request-Response Pfad)
  • Metadatenbrauchen Caching Direktivenwie Expires, Cache-Control, Etagoder Last-ModifiedVeralteteRessourcenmüssenrevalidiertwerdenvomOriginserverKonditional Requests!Etagmit If-Match und If-None-Match oder Last-Modified mit If-Unmodified-Since oder If-Modified-SinceBody nurgesandt falls nötig
  • XML, JSON, Image odermehrRessourcezueinemPunkt in der ZeitContent-Negotiation ProzesshandeltzurLaufzeit die RepräsentationausDochwieInteragieren?
  • GET, POST, PUT, DELETE, OPTIONS, HEAD, TRACE, CONNECT und PATCHDemos zeigenBedeutungResponse Codes 200 OK, 201 Created, 404 Not FoundDefinierenGenerisches Framework fürInteraktion
  • Schauenwir das Ganze in einer Demo anBACK: GutesBeispielfürverteilteArchitektur, Skaliert gut mitaddressierbarenRessourcen, Repräsentationen und KommunikationsmittelnEinfacheSchnittstellezukomplexenApplikationenInformation Hiding (Abstrahiertkonkrete Dinge wie DB etc.) hinter einemeinzigenKonzept
  • DIE RESSOURCEUnd bisjetzthabenwirnochnichtüber REST gesprochensondernnurüber die Webarchitektur
  • Representational State TransferRoy Fielding’s DissertationAnalysierte die Erfolgsgeschichte des WebsReihe von Einschränkungen auf eigeneArchitekturanwenden ProfitKurz: Reihe von Einschränkungen, darumArchitekturstil
  • Befolgt man alleEinschränkungen = RESTfulWeitererAspekt der Hochverfügbarkeit?
  • Hypermediaoder Hypermedia as the engine of application state (HAT OASE = HATEOAS)Einfachaber genialApplikationbewegtsichvorwärts von einemZustandzumAnderenwieStatemachineZuständenichtvorherbekannt, müssenentdecktwerdenRichtigangewendet = Web-friendly, wiemessen?
  • Leonard Richardson KlassifikationsmodellMaturitätslevelfürApplikationen und ServicesAuf Basis: URIs, HTTP und Hypermedia
  • Level Null, einzige URI nur POST VerbPlain Old XmlPOST http://localhost/api newAccount { }POST http://localhost/api updateInvoice { }
  • Level Eins,Operationsnamen und Parameter in der URIHat zwarmehrereRessourcen (Teile und Herrsche)Benutztnur GETGET http://localhost/api/account?=newGET http://localhost/api/invoice?=update
  • Level Zwei, URI addressierbareRessourcen,abernur CRUD (GET, POST, PUT und DELETE)FührtStandardset von Verbenein, reduziert die Anzahl an VariationenKeineEntdeckbarkeit
  • Das meiste Web-friendlyLeve!EinzigesRESTfulEntdeckbar und Selbstdokumentierend
  • Was fürein Level ist das?
  • Startenwir in die DemoBACK: KlaresVerständnisfür REST, Prinzipien des SkalierbarenVebs auf deineSoftwarearchitekturangewendet
  • Nochnichtüberzeugt? Willst du lernenwieRessourcendefinieren,Transitionen, Versionierung? Kein Problem! Vote fürnächstenVortrag
  • Transcript of "REST Fundamentals"

    1. 1. REST FundamentalsReady to think web scale?Daniel Marbachplanetgeek.ch / dotnet-zentral.ch@danielmarbach
    2. 2. www.bbv.chDocumentationinformation
    3. 3. www.bbv.chI can’t!
    4. 4. www.bbv.chIt changed everything
    5. 5. www.bbv.chSuccess Story?
    6. 6. www.bbv.chResource
    7. 7. www.bbv.chIdentifierUniformResourceIdentifier
    8. 8. www.bbv.chMetadataUniformResourceIdentifiereTagCaching…
    9. 9. www.bbv.chMetadataUniformResourceIdentifiereTagCaching…
    10. 10. www.bbv.chRepresentationsUniformResourceIdentifiereTagCaching…
    11. 11. www.bbv.chVerbs & CodesUniformResourceIdentifiereTagCaching…HEADTRACECONNECT200404201
    12. 12. www.bbv.chRESTaurant Demo
    13. 13. www.bbv.chKey Concept
    14. 14. www.bbv.chConstraints =REST
    15. 15. www.bbv.ch=RESTfulI obey…I obey all constraintsI obey all constraintsI obey…
    16. 16. www.bbv.chHypermedia
    17. 17. www.bbv.chThreeTwoOneZeroMaturity Model
    18. 18. www.bbv.chHypermediaHTTP VerbsResourcesPlain old XMLLevel Zero
    19. 19. www.bbv.chHypermediaHTTP VerbsResourcesPlain old XMLLevel One
    20. 20. www.bbv.chHypermediaHTTP VerbsResourcesPlain old XMLLevel Two
    21. 21. www.bbv.chHypermediaHTTP VerbsResourcesPlain old XMLLevel Three
    22. 22. www.bbv.chWhat level is this?
    23. 23. www.bbv.chBacklog Demo
    24. 24. www.bbv.chThere is more!
    25. 25. www.bbv.chREST FundamentalsEnjoy the REST of the forum;)Daniel Marbachplanetgeek.ch / dotnet-zentral.ch@danielmarbach

    ×