UNIVERSITÄT ZU KÖLN HISTORISCH-KULTURWISSENSCHAFTLICHE INFORMATIONSVERARBEITUNG REUSABLE - CONTENT SS 2013 MARIA WAGNER ReST
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 Representational State 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 Datentransfer nutzt, um zwischen zwei Maschinen zu verbinden, benutzt man das einfache http
Beispiel SOAP vs. ReST SOAP: <soap:Envelope xmlns:soap=" soap:encodingStyle=" ReST: Komplexer:
ReST Server Antwort ACME Boomerang Used by Coyote in Zoom at the Top, ACME Dehydrated Boulders Used by Coyote in Scrambled Aches,
Javascript: Anfrage Objekt function createRequest() { var result = null; if (window.XMLHttpRequest) { result = new XMLHttpRequest(); if (typeof xmlhttp.overrideMimeType != 'undefined') { result.overrideMimeType('text/xml'); } else if (window.ActiveXObject) { result = new ActiveXObject("Microsoft.XMLHTTP"); } else {} return result; }
Javascript: Callback var req = 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 var resp = 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);
Nutzung
Quellen e_Transfer e_Transfer %20in%20REST.pdf %20in%20REST.pdf