… Architekturstil für WebAPIs basierend auf ClientServerModell Stateless Cachable SchichtenSystem und Uniform Interface Ermöglicht skalierbare und zuverlässige Systeme Oft mit JSON oder XML und URIs verwendet …
REST (Representational State Transfer)
REST, oder Representational State Transfer, ist ein Architekturstil für die Erstellung von Web-APIs (Application Programming Interfaces). Er definiert einen Satz von Einschränkungen, die, wenn sie befolgt werden, eine einfache, skalierbare und zuverlässige Architektur für die Interaktion zwischen Client und Server ermöglichen. Im Gegensatz zu anderen Architekturstilen, die oft stark protokollgebunden sind, ist REST flexibel und kann verschiedene Protokolle verwenden, wobei HTTP am häufigsten eingesetzt wird.
Kernprinzipien von REST sind:
-
Client-Server: Client und Server sind unabhängig voneinander und können separat entwickelt und verbessert werden. Der Client kennt typischerweise die Ressourcen, aber nicht deren interne Organisation.
-
Stateless: Jede Client-Anfrage enthält alle Informationen, die der Server benötigt, um sie zu bearbeiten. Der Server speichert keine Kontextinformationen zwischen den Anfragen eines Clients. Dies verbessert die Skalierbarkeit, da der Server keine Zustandsinformationen verwalten muss.
-
Cacheable: Antworten vom Server können zwischengespeichert werden, um die Leistung zu verbessern und die Netzwerklast zu reduzieren. Dies wird durch HTTP-Header wie
Cache-Control
gesteuert. -
Schichten-System: Der Client interagiert möglicherweise nicht direkt mit dem Server, sondern mit einer Reihe von Zwischenschichten (z.B. Proxies, Loadbalancer). Dies erhöht die Flexibilität und Robustheit des Systems.
-
Uniform Interface: Dies ist das wichtigste Prinzip von REST. Es beschreibt einen Satz von Operationen, die auf Ressourcen angewendet werden können, wobei diese Operationen über Standard-HTTP-Methoden (GET, POST, PUT, DELETE usw.) abgebildet werden. Der einheitliche Interface ermöglicht eine einfache und verständliche Interaktion, unabhängig von der spezifischen Ressource.
-
Code on Demand (optional): Der Server kann optional Client-seitigen Code (z.B. JavaScript) an den Client senden, um die Funktionalität zu erweitern.
REST wird häufig mit JSON oder XML verwendet, um die Repräsentation (den “State”) der Ressourcen zu übertragen. Die Ressourcen werden typischerweise durch URIs (Uniform Resource Identifiers) identifiziert. Durch die Verwendung von Standard-HTTP-Methoden und dem einheitlichen Interface wird eine einfache und verständliche API geschaffen, die leicht von verschiedenen Clients verwendet werden kann. Die Einhaltung aller REST-Prinzipien ist jedoch nicht immer zwingend erforderlich, und viele APIs werden als “RESTful” bezeichnet, obwohl sie nicht alle Prinzipien strikt einhalten. Solche APIs werden oft als REST-like APIs bezeichnet.
Gewusst?
Erklären Sie den Unterschied zwischen einer RESTful API und einer REST-like API im Kontext der sechs REST-Prinzipien.