REST-API

Definition: REST-API, auch als „Representational State Transfer – Application Programming Interface“ bekannt, ist eine Programmier-Schnittstelle, die den Datenaustausch auf verteilte Systeme ermöglicht.

Im heutigen modernen Zeitalter sind die meisten Anwendung in irgendeiner Form mit dem Internet verbunden. Neben mobilen Endgeräten wie Smartphones, Tablets und Co. sind heute auch eine Vielzahl von unterschiedlichen Systemen im Einsatz, die sogenannte Programmier-Schnittstellen wie die REST-API unabdingbar machen. Genau aus diesem Grund sind REST-APIs aus dem modernen Web nicht mehr wegzudenken. Doch was ist eine REST-API nun genau und wie funktioniert diese Art von Programmier-Schnittstelle überhaupt?

Was ist eine REST-API nun?

Im Grunde genommen ist die REST-API eine Art Kommunikation von Maschine zu Maschine, denn schließlich müssen unterschiedliche Systeme und Geräte so miteinander verbunden werden, dass sie dieselben „Sprache“ sprechen. Um allerdings genau verstehen zu können, was eine REST-API nun ist, müssen die beiden Bestandteile „REST“ und „API“ einzeln betrachtet werden. Was ist also eine API und wie wird eine API zur sogenannten REST-API, also Programmier-Schnittstelle? Das erfahren Sie jetzt!

API:

Das Kürzel „API“ steht wie bereits erwähnt für „Application Programming Interface“ – Auf Deutsch: Anwendungsprogrammierschnittstelle. Hierbei handelt es sich also um eine Schnittstelle, die dafür sorgt, dass zwei verschiedene Systeme problemlos miteinander kommunizieren können. Derartige Schnittstellen sind nahezu überall zu finden, sei es nun klassisch zwischen Servern und Programmen oder zwischen Haushaltsgeräten. In unserem heutigen Blogbeitrag widmen wir uns allerdings den APIs im Zusammenhang mit Webseiten und deren Anwendungen.

Wichtig: Die Kommunikation zwischen Software A und Software B geschieht immer über eine bestimmte Schnittstelle, also eine API. Wie die Kommunikation jedoch vonstatten geht, hängt in erster Linie von der jeweiligen Schnittstelle ab und genau an diesem Punkt kommt „REST“ zum Einsatz.

REST:

Die Abkürzung „REST“ steht für „Respresentational State Transfer“. Während eine API als eine Art Kanal fungiert, gibt REST die Regeln und Strukturen vor, nach denen der Datenaustausch erfolgen muss. Hierzu zählen unteranderem folgende:

Client-Server-Architektur

Die REST-Architektur sieht eine saubere Datenhaltungs- und Nutzer-Interface-Trennung vor. So lassen sich Clients leichter an die unterschiedlichen Umgebungen und Plattformen anpassen. Die Server sind dabei einfach zu skalieren.

Zustandslosigkeit auch Statelessness genannt

Es ist wichtig, dass sich Client und Server zustandslos austauschen können. Das heißt, dass Anfragen von Clients sämtliche Informationen beinhalten müssen, die der Server für seine Arbeit benötigt. Schließlich verfügt der Server selbst über keinerlei gespeicherten Kontext.

Schichtsystem auch Layered System genannt

REST-API setzt auf mehrschichtige und klar voneinander abgegrenzte Systeme. Das heißt: Clientsanfragen können den Server entweder direkt erreichen oder es werden aus Sicherheitsgründen verschiedene Server zwischengestaltet.

Zwischenspeicher

REST-Server sind in der Lage dazu, Daten zwischen zu speichern. Mittels Cache-Control-Headers kann der Server dem Client mitteilen, ob die ausgetauschten Daten zwischengespeichert werden sollen oder nicht. Zudem wird hier auch direkt angegeben, wie lange die Antwort gültig ist.

Code-on-demand (optional)

Das optionale Prinzip erfordert unteranderem auch noch die Erweiterung von Programmteilen die nachlad- und ausführbar sind. Hierzu zählen zum Beispiel Skripte oder Applets. Das es sich hierbei jedoch um ein optionales Prinzip handelt, kann dieses auch deaktiviert werden.

Wie funktioniert die Programmier-Schnittstelle REST-API?

Um Ihnen die Funktionsweise einer REST-API etwas näher erläutern zu können, beginnen wir mit einem bildlichen Vergleich: Eine REST-API wird von einem Kunden beauftragt und fungiert in Folge dessen als eine Art Bote. Stellen Sie sich an dieser Stelle doch einfach einen Kellner im Restaurant vor, der Ihre Bestellung entgegen nimmt. Dieser begibt sich anschließend in die Küche und kommt mit Ihrem bestellten Essen wieder zurück an Ihren Tisch. Sie agieren in diesem Fall als der Client und das Restaurant als Server. Sie und das Restaurant haben ausschließlich über den Kellner bzw. den Mitarbeiter also die REST-API kommuniziert. Um an den gewünschten Inhalt zu kommen, müssen Sie sich nicht erst in die Küche bewegen, sondern einfach einen bestimmten „Befehl“ äußern. Um den bildlichen Vergleich zu verlassen, möchten wir Ihnen nun kurz die unterschiedlichen Befehle der REST-APIs aufzeigen. Hierzu zählen folgende:

    • GET: Abruf bestimmter Ressourcen
    • POST: Erstellen bestimmter Ressourcen
    • PUT: Aktualisierung von bestimmten Ressourcen
    • DELETE: Löschen von bestimmten Ressourcen