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
XML, JSON, Image odermehrRessourcezueinemPunkt in der ZeitContent-Negotiation ProzesshandeltzurLaufzeit die RepräsentationausDemos zeigenBedeutungVerben & Response Codes 200 OK, 201 Created, 404 Not FoundVerben & Response Codes definierenGenerisches Framework fürInteraktion
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
Null: Level Null, einzige URI nur POST VerbPlain Old XmlPOST http://localhost/api newAccount { }Eins: Level Eins,Operationsnamen und Parameter in der URIBenutztnur GETGET http://localhost/api/account?=new
Zwei: URI addressierbareRessourcen,abernur CRUD (GET, POST, PUT und DELETE)FührtStandardset von Verbenein, reduziert die Anzahl an VariationenDrei: Das meiste Web-friendlyLeve!EinzigesRESTfulEntdeckbar und Selbstdokumentierend
Startenwir in die DemoBACK: KlaresVerständnisfür REST, Prinzipien des SkalierbarenVebs auf deineSoftwarearchitekturangewendet