150 likes | 487 Vues
ReST. Universität zu Köln Historisch-kulturwissenschaftliche Informationsverarbeitung Reusable - Content SS 2013 Maria Wagner. Inhaltsverzeichnis. Allgemein Vorteile Grundprinzipen Architektur SOAP vs. ReST Beispiel ReST Server Antwort Javascript Nutzung Video Quellen .
E N D
ReST Universität zu Köln Historisch-kulturwissenschaftliche Informationsverarbeitung Reusable - Content SS 2013 Maria Wagner
Inhaltsverzeichnis Allgemein Vorteile Grundprinzipen Architektur SOAP vs. ReST Beispiel ReST Server Antwort Javascript Nutzung Video Quellen
Allgemein Einfacher Weg um die Interaktion zwischen zwei unabhängigen Systemen zu organisieren • RepresentationalState Transfer • Kommunikationsprotokoll • Seit 2005 gewinnt es an Populitarität • Inspiriert, Weiterführung, Basierend auf http • Anwendungsschicht- Protokoll http
Vorteile • Unabhängig vom Client Server • Plattformunabhängig • Sprachen unabhängig • Standard basieren auf http Basis • Kann auch mit firewalls benutzt werden • Barrierefreiheit • Anbindung an Fremdsprachen • Unabhängig installierbarer Komponeten • Skalierbarkeit • Reduzierte Networkstau: • Besserer Cache Support • Einfachere Anfrage und Antworten - System • Einfacheres Verständnis
Grundprinzipen • Ressourcen mit eindeutiger Identifikation • Verknüpfungen/Hypermedia • Standardmethoden • Unterschiedliche Repräsentationen • Statuslose Kommunikation
Architektur • GET: fragt die Repräsentation einer Ressource ab • POST: kann einer Ressource etwas hinzugefügt, updatetet, gelöscht werden. • PUT: Neue Ressourcen können mit PUT erzeugt oder der Inhalt bestehender Ressourcen kann mit PUT ersetzt werden. • DELETE: Ressourcen können mit DELETE gelöscht werden. CRUD
SOAP vs. ReST • SOAP = Briefumschlag vs. Rest = Postkarte • SOAP web Service, das XML für Datentransfernutzt, um zwischen zwei Maschinen zu verbinden, benutzt man das einfache http
Beispiel SOAP vs. ReST • SOAP: <?xml version="1.0"?> <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:body pb="http://www.acme.com/phonebook"> <pb:GetUserDetails> <pb:UserID>12345</pb:UserID> </pb:GetUserDetails> </soap:Body> </soap:Envelope> • ReST: http://www.acme.com/phonebook/UserDetails/12345 • Komplexer: http://www.acme.com/phonebook/UserDetails?firstName=John&lastName=Doe
ReST Server Antwort <parts-list> <partid="3322"> <name>ACME Boomerang</name> <desc> Usedby Coyote in <i>Zoom atthe Top</i>, 1962 </desc> <pricecurrency="usd" quantity="1">17.32</price> <uri>http://www.acme.com/parts/3322</uri> </part> <partid="783"> <name>ACME DehydratedBoulders</name> <desc> Usedby Coyote in <i>ScrambledAches</i>, 1957 </desc> <pricecurrency="usd" quantity="pack">19.95</price> <uri>http://www.acme.com/parts/783</uri> </part> </parts-list>
Javascript: Anfrage Objekt functioncreateRequest() { varresult = null; if (window.XMLHttpRequest) { result= newXMLHttpRequest(); if (typeofxmlhttp.overrideMimeType != 'undefined') { result.overrideMimeType('text/xml'); } } elseif (window.ActiveXObject) { result = newActiveXObject("Microsoft.XMLHTTP"); } else{} returnresult; }
Javascript: Callback varreq = createRequest(); // defined above // Create the callback: req.onreadystatechange = function() { if (req.readyState != 4) return; // Not there yet if (req.status != 200) { // Handle request failure here... return; } // Request successful, read the response varresp = req.responseText; // ... and use it as needed by your app. }
Javascript: Anfrage req.open("GET", url, true); req.send(); Oder req.open("POST", url, true); req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); req.send(form-encoded request body);
Quellen http://rest.elkstein.org/ http://www.oio.de/public/xml/rest-webservices.htm http://de.wikipedia.org/wiki/Representational_State_Transfer http://dpunkt.de/leseproben/3574/3_Einfuehrung%20in%20REST.pdf http://www.oio.de/public/xml/rest-webservices.htm http://www.infoq.com/articles/rest-introduction