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.