Was ist eine REST API?
Eine REST API ist eine API (Application Programming Interface), die den Designprinzipien einer REST-Architektur folgt. REST ist die Abkürzung für „Representational State Transfer“ und bezeichnet verschiedene Regeln und Richtlinien, die festlegen, wie eine Web-API aufgebaut sein sollte.
Was ist eine API?
Eine API ist ein Satz von Definitionen und Protokollen für die Entwicklung und Integration von Anwendungssoftware. Manchmal werden APIs auch als ein Vertrag zwischen einem Informationsanbieter und einem Informationsnutzer über den vom Consumer benötigten Inhalt (der Aufruf) und dem vom Producer benötigten Inhalt (der Antwort) bezeichnet. In einer API für einen Wetterdienst könnten beispielsweise Nutzende eine Postleitzahl angeben, worauf der Producer eine zweiteilige Antwort zurückgibt: die höchste und die niedrigste Temperatur.
Das heißt, wenn Sie mit einem Computer oder System interagieren möchten, um Informationen abzurufen oder eine Funktion auszuführen, hilft Ihnen eine API dabei, dem System mitzuteilen, was Sie möchten, damit es die Anfrage verstehen und erfüllen kann.
Eine API lässt sich als Vermittler zwischen den Nutzenden oder Kunden und den Ressourcen oder Webservices, die sie erhalten möchten, betrachten. Sie ist auch eine Möglichkeit für eine Organisation, Ressourcen und Informationen auszutauschen und dabei für Sicherheit, Kontrolle und Authentifizierung zu sorgen – und zu bestimmen, welche Personen Zugriff auf welche Informationen erhalten.
Ein weiterer Vorteil einer API besteht darin, dass Sie sich nicht eingehend mit Caching auskennen müssen – also damit, wie Ihre Ressource abgerufen wird oder woher sie stammt.
REST
Bei REST handelt es sich um eine Sammlung von Architekturbeschränkungen und nicht um ein Protokoll oder einen Standard. API-Entwicklungsteams können REST auf verschiedene Arten implementieren.
Wenn eine Client-Anfrage über eine RESTful API gestellt wird, überträgt sie eine Darstellung des Ressourcenzustands an den Anfragenden oder Endpunkt. Diese Informationen oder Darstellungen werden in einem von mehreren Formaten über HTTP bereitgestellt: JSON (Javascript Object Notation), HTML, XLT, Python, PHP oder als einfacher Text. JSON ist hierbei die beliebteste Methode, weil es trotz seines Namens sprachagnostisch ist und sowohl von Menschen als auch von Maschinen gelesen werden kann.
Beachten Sie auch, dass Header und Parameter bei den HTTP-Methoden einer HTTP-Anfrage an eine RESTful API ebenfalls wichtig sind, da sie wichtige Identifizierungsinformationen zu den Metadaten, der Autorisierung, dem Uniform Resource Identifier (URI), dem Caching, den Cookies usw. der Anfrage enthalten. Es gibt Anfrage- und Antwort-Header, die jeweils über eigene HTTP-Verbindungsinformationen und Statuscodes verfügen.
Damit eine API als RESTful gilt, muss sie folgende Kriterien erfüllen:
- Eine Architektur mit Clients und Servern, die aus Clients, Servern und Ressourcen besteht, und bei der Anfragen über HTTP verwaltet werden.
- Zustandslose Client-Server- Kommunikation, d. h. es werden keine Client-Informationen zwischen Anfragen gespeichert und die einzelnen Anfragen erfolgen separat und sind nicht verbunden.
- Cachefähige Daten, die die Interaktion zwischen Client und Server optimieren.
- Eine einheitliche Schnittstelle zwischen Komponenten, sodass Informationen in einer Standardform übertragen werden. Dafür sind folgende Voraussetzungen erforderlich:
- Die angeforderten Ressourcen sind identifizierbar und getrennt von den an den Client gesendeten Darstellungen.
- Ressourcen können vom Client über die Darstellung, die er erhält, manipuliert werden, da die Darstellung dafür genügend Informationen enthält.
- Die an den Client zurückgesendeten, selbsterklärenden Nachrichten enthalten genügend Informationen zu deren Verarbeitung durch den Client.
- Hypertext/Hypermedia ist verfügbar, d. h. nach dem Zugriff auf eine Ressource kann der Client über Hyperlinks sämtliche anderen derzeit verfügbaren Aktionen finden, die er ausführen kann.
- Ein mehrschichtiges System, das die einzelnen Servertypen (die für Sicherheit, Load Balancing usw. zuständig sind) organisiert, ermöglichte das Abrufen der angeforderten Informationen in Hierarchien, die für den Client unsichtbar sind.
- Code-on-Demand (optional): Die Fähigkeit, auf Anforderung ausführbaren Code vom Server an den Client zu senden und so die Client-Funktionalität zu erweitern.
Obwohl die REST API diese Kriterien erfüllen muss, gilt sie immer noch als benutzerfreundlicher als ein vorgeschriebenes Protokoll wie SOAP (Simple Object Access Protocol), das spezifische Anforderungen wie XML-Messaging und integrierte Sicherheits- und Transaktions-Compliance erfordert, die es langsamer und schwerfälliger machen.
Im Gegensatz dazu handelt es sich bei REST um Richtlinien, die nach Bedarf implementiert werden können und REST APIs schneller und schlanker machen, mit erhöhter Skalierbarkeit – ideal für die Entwicklung von Internet of Things (IoT) und mobilen Apps.
Erste Schritte mit Red Hat OpenShift API Management
Warum Red Hat?
Bei Red Hat® Integration handelt es sich um eine API-zentrierte Lösung, die Anwendungskonnektivität und Datentransformation, Service-Komposition und -Orchestrierung, Echtzeit-Nachrichten-Streaming, Änderungsdatenerfassung und API-Management zentral bereitstellt, um Anwendungen und Daten in einer hybriden Infrastruktur zu verbinden. In Kombination mit einer cloudnativen Plattform und Toolchain unterstützt die Lösung die moderne App-Entwicklung.
Red Hat 3scale API Management ist eine Komponente von Red Hat Integration und unterstützt Sie beim gemeinsamen Nutzen, Verteilen, Kontrollieren und Monetarisieren Ihrer APIs auf einer Infrastrukturplattform, die für Performance, Kontrolle, Sicherheit und Wachstum entwickelt wurde. Sie können 3scale-Komponenten On-Premise, in der Cloud oder beiden integrieren.