Home
Über mich
Veröffentlichungen

XML XML-Schema XPath XSL-T XSL-FO XQuery XProc SVG

XML / XML: wichtige Einsatzgebiete / Datenaustausch / REST Webservice

REST Webservice

REST Webservice

➪ Die REpresentational-State-Transfer-Architektur ist weder ein Standard noch ein Produkt, sondern ein Konzept zur Umsetzung von Webservices. REST stellt eine Alternative zu SOAP oder XML-RPC dar. Einfach ausgedrückt, bietet ein REST-Webservice die Möglichkeit, via HTTP mit GET, POST, PUT und DELETE einen Request an einen Webserver abzusenden und dabei Informationen zu übertragen. Der Webserver antwortet mit einer Response, die der Client verarbeiten kann.

Auf dieser Seite:

REST ist ein Spezialfall des Datenaustausches. Ein RESTful Webservice arbeitet im Regelfall mit einer Client-Server-Architektur, wobei die Datenübertragung über http oder https geschieht. Damit ist das Kommunikationsverfahren ebenso wesentlich festgelegt wie die Datenformate (oft beschränkt auf CSV, JSON und XML) und die individuelle, vom Server vorgegebene Datenstruktur. Diese Struktur ist immer gleich, auch wenn die Dateninhalte stark variieren können. Heißt: Der Server bestimmt, was geliefert wird. Der Client übernimmt die Daten: was er damit macht, steht nicht im Einflussbereich des Servers.

pic/REST1.jpg

HTTP

Das Hypertext Transfer Protocol HTTP (aktuell: HTTP/2) ist ein zustandsloses Dateiübertragungsprotokoll, das häufig zur Übertragung von Hypertext (Webseiten im Internet) auf Browser verwendet wird, aber auch für Dateien anderer Formate (z.B. XML, JSON, CSV, ...) verwendet werden kann.

Beteiligte in diesem Datenaustausch sind der Client und der Server, die jeweils unterschiedliche Nachrichtenarten versenden. Der Client stellt eine Anfrage (Request) an den Server, dieser antwortet mit einer Response. Jede Nachricht hat dabei einen Header (Message Header, HTTP-Header) und einen Body.

DELETE löscht eine Ressource auf dem Server.
GET fordert Informationen vom Server an, z.B. eine Datei. Hierbei können Argumente übergeben werden; die Zeichenlänge des URI soll aber 255 Bytes nicht überschreiten.
HEAD Wie GET; aber es werden nur die Header-Informationen ohne Body angefordert.
OPTIONS Analog zu GET; es werden nur die serverseitig unterstützten Methoden und Merkmale angefordert.
POST erzeugt eine neue Ressource in einer Collection auf dem Server. Beispiel: POST /werte. Wird auch für Updates verwendet.
PUT ersetzt eine Ressource auf dem Server bzw. erzeugt sie, falls sie noch nicht vorhanden ist. Ändert eine Ressource in der Collection via ID, z.B. PUT /werte/1234. Zur klaren Unterscheidung zwischen POST und PUT gibt es lange Debatten.

Welche dieser Anfragen an den Server gerichtet wurden, können Sie beispielsweise auf einem PHP-Webserver so herausfinden:


$anfragemethode = $_SERVER['REQUEST_METHOD'];

... und so behandeln:


switch ($anfragemethode) {
  case 'DELETE':
    // z.B. DELETE-Statement an eine Datenbank 
  case 'GET':
    // z.B. SELECT-Abfrage an eine Datenbank
  case 'POST':
    // z.B. INSERT-Statement an eine Datenbank
  case 'PUT':
    // z.B. UPDATE-Statement an eine Datenbank
    break;
}

wg / 24. März 2020



Fragen? Anmerkungen? Tipps?

Bitte nehmen Sie Kontakt zu mir auf.






Vielen Dank für Ihr Interesse an meiner Arbeit.



V.i.S.d.P.: Wilfried Grupe * Klus 6 * 37643 Negenborn

☎ 0151. 750 360 61 * eMail: info10@wilfried-grupe.de

www.wilfried-grupe.de/REST_Webservice.html