Überblick
Eine REST-API (auch bekannt als RESTful API) ist eine API (Application Programming Interface) oder Web-API, die den Beschränkungen der REST-Architektur unterliegt und Interaktionen mit RESTful Webservices ermöglicht. REST steht für „Representational State Transfer“ und wurde vom US-amerikanischen Informatiker Roy Fielding entwickelt.
Was ist REST?
Bei REST handelt es sich um eine Sammlung von Architekturbeschränkungen und nicht um ein Protokoll oder einen Standard. API-Entwickler können REST auf vielfältige Weise implementieren.
Wenn eine Client-Anforderung über eine RESTful API gestellt wird, überträgt diese eine Repräsentation des Ressourcenstatus an den Anforderer oder Endpunkt. Diese Repräsentation bzw. diese Informationen werden in einem der HTTP-Formate bereitgestellt: JSON (JavaScript Object Notation), HTML, XLT, Python, PHP oder Plain Text. JSON ist hierbei die beliebteste Programmiersprache, weil es trotz seines Namens sprachagnostisch ist und sowohl von Menschen als auch von Maschinen gelesen werden kann.
Außerdem müssen Sie Folgendes berücksichtigen: Header und Parameter sind ebenfalls wichtige Komponenten in den HTTP-Methoden einer RESTful API-HTTP-Anforderung. Sie enthalten wichtige ID-Informationen in Bezug auf die Metadaten der Anforderung, die Autorisierung, den URI (Uniform Resource Identifier), das Caching, Cookies usw. Es gibt Anforderungs- und Antwort-Header, die jeweils eigene HTTP-Verbindungsinformationen und Statuscodes aufweisen.
RESTful APIs zeichnen sich durch folgende Kriterien aus:
- Eine aus Clients, Servern und Ressourcen bestehende Client/Server-Architektur, die Anforderungen per HTTP verwaltet.
- Zustandslose Client/Server-Kommunikation, d. h. zwischen GET-Anforderungen werden keine Client-Informationen gespeichert, und die einzelnen Anforderungen sind separat und nicht verbunden.
- Cachingfähige Daten, mit denen Client/Server-Interaktionen optimiert werden.
- Eine einheitliche Schnittstelle zwischen Komponenten, um Informationen in standardisierter Form zu übertragen. Hierfür ist Folgendes erforderlich:
- Die angefragten Ressourcen sind identifizierbar und von den an den Client gesendeten Repräsentationen getrennt.
- Ressourcen können durch den Client über die von ihnen empfangene Repräsentation manipuliert werden, weil sie genügend Informationen hierfür enthält.
- An den Client zurückgegebene selbstbeschreibende Nachrichten enthalten genügend Informationen, die die Art und Weise der Verarbeitung durch den Client beschreiben.
- Hypertext/Hypermedia, d. h. der Client sollte nach dem Zugriff auf eine Ressource in der Lage sein, mithilfe von Hyperlinks alle aktuelle verfügbaren ausführbaren Aktionen aufzufinden.
- Ein mehrstufiges System, mit dem alle Servertypen (zuständig für Sicherheit, Load Balancing usw.) organisiert werden, die am Abruf der angeforderten Informationen in für den Client unsichtbaren Hierarchien beteiligt 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 REST-APIs alle diese Kriterien erfüllen müssen, lassen sie sich trotzdem einfacher verwenden als vorgeschriebene Protokolle wie SOAP (Simple Object Access Protocol), für die spezifische Anforderungen wie XML-Messaging, integrierte Sicherheit und Transaktions-Compliance erforderlich sind, was sie langsamer und schwerfälliger macht.
Im Gegensatz dazu handelt es sich bei REST um Richtlinien, die flexibel implementiert werden können. Dadurch wiederum gestalten sich REST-APIs schneller und kompakter mit verbesserter Skalierbarkeit und eignen sich so perfekt für das Internet of Things (IoT) und die Entwicklung mobiler Apps.
Warum Red Hat?
Red Hat® Integration ist eine API-orientierte Lösung, die Anwendungskonnektivität und Datentransformation, Serviceerstellung und -orchestrierung, Echtzeit-Nachrichten-Streaming, Änderungsdatenerfassung sowie API-Management vereint, um Anwendungen und Daten in Hybrid-Infrastrukturen miteinander zu verbinden. Zur Unterstützung der modernen App-Entwicklung ist es mit einer cloudnativen Plattform und Toolchain integriert.
Red Hat 3scale API Management ist eine Komponente von Red Hat Integration, mit der Sie Ihre APIs auf einer Infrastrukturplattform teilen, verteilen, kontrollieren und monetarisieren können, die auf Performance, Kontrolle, Sicherheit und Wachstum ausgelegt ist. Sie können 3scale-Komponenten lokal und/oder in Cloud-Umgebungen integrieren.