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
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