AllgemeinSoftware

REST

In diesem Blogeintrag geht es um den Representational State Transfer (kurz: REST), welches zur Datenkommunikation zwischen verteilten Systemen genutzt werden kann. Wir beleuchten was REST ist, wie die Funktionsweise aussieht und für welche Einsatzgebiete es geeignet ist.

Was ist REST
Der Representational State Transfer wird hauptsächlich zur Maschine-zu-Maschine (M2M) Kommunikation genutzt. Was REST von anderen Kommunikationsarten unterscheidet ist, dass es ohne Probleme in fast jeder Programmiersprache einsetzbar ist und mit Standardkonformen Web-, Applikations-Servern und HTTP-Clients arbeitet. Dies liegt daran, dass REST sich die Standardmethoden und Eigenschaften des HTTP-Protokolls zu Nutzen machen.

Durch REST kann das sogenannte CRUD-Verfahren (Create-Read-Update-Delete) über verteilte Systeme verwendet werden. Das bedeutet, dass man über diese Schnittstelle neue Datensätze erstellen (HTTP CREATE), auslesen (HTTP READ), aktualisieren (HTTP UPDATE) und löschen (HTTP DELETE) kann.

Wie funktioniert REST
Bei dem Kommunikationsverfahren wird zunächst eine URL eines entfernten Rechners aufgerufen. Diesen Aufruf können Daten übergeben werden, so genannte Medientypen. Das können z.B. Parameter sein, die in der URL stehen, Metadaten die im Hintergrund weitergegeben werden oder ganze Dateien. Dies kann z.B. eine JSON-Datei sein, welche als Datenhülse übermittelt wird. Der Server verarbeitet die empfangenen Daten mit Hilfe einer Server-Applikation und liefert anschließend das Ergebnis an die aufrufende Instanz zurück.

Wie REST verwendet werden kann
Wie bereits erwähnt, verwendet REST die Standard HTTP-Methoden und kann somit innerhalb der meisten Programmiersprachen verwendet werden. Im folgendem Python-Programmbeispiel findet die Übergabe eines neuen Benutzer statt, welcher in eine Datenbank gespeichert werden soll.

Unser Python-Code

importrequests
# Erstellen eines neuen Benutzers via JSON-Notation
payload = {
  "forename": "Pascal",
  "lastname": "Kastenberg",
  "age": 21
}
# Verbindet sich mit dem Server und uebergibt den neuen Benutzer
requests.post('http://127.0.0.1:8080/v1/user/',params= payload)

Die Antwort des Servers

{"id": 3,
"forename": "Pascal", "lastname":
"Kastenberg", "age": 21, "updatedAt":
"2018-02-09T10:32:14.125Z", "updatedAt":
"2018-02-09T10:32:14.125Z"}

Auf dem angesprochenen Server läuft ein HTTP-Dienst zur Verarbeitung der eintreffenden Daten. Dieser hat die Daten angenommen, verarbeitet und anschließend in eine Datenbank gespeichert. Der angelegte Datenbankeintrag wurde dann an den Client gesendet, welcher die Anfrage gestellt hat. Zusammenfassend lässt sich sagen, dass REST leicht zu bedienen ist und man schon mit wenig Aufwand viel realisieren kann. Empfehlenswert ist REST aktuell für fast jegliche Art der M2M-Kommunikation.

 

PG

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.