REST (Representational State Transfer)

Alltags-Analogie

REST ist kein konkretes Werkzeug, sondern ein Architekturstil – eine Art Regelwerk für gute Manieren, nach dem sich Programme im Web unterhalten sollten.

Was steckt dahinter?

REST ist kein konkretes Werkzeug, sondern ein Architekturstil – eine Art Regelwerk für gute Manieren, nach dem sich Programme im Web unterhalten sollten. Eine REST-konforme API organisiert ihre Funktionen rund um sogenannte “Ressourcen” (z.B. Kunden, Produkte, Bestellungen), die jeweils über eine feste, klar benannte Adresse (URL) erreichbar sind, etwa `/kunden/5` für den Kunden mit der ID 5. Auf diese Ressourcen wendet man dann eine der vier klassischen CRUD-Operationen an, die jeweils einer bestimmten HTTP-Methode entsprechen: GET zum Abrufen von Daten, POST zum Anlegen neuer Datensätze, PUT oder PATCH zum Aktualisieren bestehender Daten und DELETE zum Löschen. Diese Eins-zu-eins-Zuordnung zwischen CRUD und HTTP-Methoden macht REST-APIs für Entwickler sehr vorhersehbar: Wer die Konvention einmal verstanden hat, kann sich in praktisch jeder REST-API relativ schnell zurechtfinden, ohne jedes Mal eine komplett neue Logik lernen zu müssen. Ein weiteres zentrales Merkmal von REST ist die sogenannte Zustandslosigkeit (Statelessness): Jede Anfrage an eine REST-API sollte für sich genommen alle notwendigen Informationen enthalten, ohne dass sich der Server an vorherige Anfragen “erinnern” muss. Das erleichtert die Skalierung erheblich, weil sich Anfragen beliebig auf mehrere Server hinter einem Load Balancer verteilen lassen, ohne dass eine Anfrage zwingend immer beim selben Server landen muss. Frameworks wie Laravel bringen mit ihrem integrierten Routing-System bereits alles Notwendige mit, um schnell eigene REST-APIs aufzubauen.