• Save
REST Fundamentals
Upcoming SlideShare
Loading in...5
×
 

REST Fundamentals

on

  • 625 views

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/

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/

Statistics

Views

Total Views
625
Views on SlideShare
625
Embed Views
0

Actions

Likes
0
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • 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

REST Fundamentals REST Fundamentals Presentation Transcript

  • 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