Startseite Themen REST-APIs Was ist eine REST-API?
Erkunden Sie die REST-API-Lösung von IBM Für KI-Updates anmelden
Piktogramm einer Benutzeroberfläche für das API Management

IBM TechXchange Konferenz 2024 | Vom 21. bis 24. Oktober in Las Vegas

Nehmen Sie an der Pflichtveranstaltung für Technologen teil, die IBM-Produkte und -Lösungen verwenden. Erkunden Sie den wachsenden Katalog mit über 1.200 Sitzungen und Workshops.

Erfahren Sie mehr über die TechXchange und registrieren Sie sich
Was ist eine REST-API?

Eine REST-API (auch RESTful-API oder RESTful-Web-API genannt) ist eine Anwendungsprogrammierschnittstelle (API), die den Designprinzipien des REST-Architekturstils (Representational State Transfer) entspricht. REST-APIs bieten eine flexible, kompakte Möglichkeit für die Integration von Anwendungen und Verbindung von Komponenten in Microservices-Architekturen.
 

REST wurde erstmals im Jahr 2000 von dem Informatiker Dr. Roy Fielding in seiner Dissertation definiert und bietet Entwicklern ein relativ hohes Maß an Flexibilität, Skalierbarkeit und Effizienz. Aus diesen Gründen haben sich REST-APIs als gängige Methode für die Verbindung von Komponenten und Anwendungen in einer Microservices-Architektur durchgesetzt.

Die Mythen zur Observability entlarven

Dieses E-Book räumt mit den Mythen um die Observability (Beobachtbarkeit) auf und legt ihre Rolle in der digitalen Welt dar.

Ähnliche Inhalte

Lesen Sie diesen Leitfaden zur intelligenten Automatisierung

Erfahren Sie, wie KI die Optimierung von API-basierte Agenten vorantreibt
REST-Designprinzipien

In ihrer einfachsten Form ist eine API ein Mechanismus, der es einer Anwendung oder einem Dienst ermöglicht, auf eine Ressource innerhalb einer anderen Anwendung oder eines anderen Dienstes zuzugreifen. Die Anwendung oder der Dienst, der auf Ressourcen zugreift, ist der Client, und die Anwendung oder der Dienst, der die Ressource enthält, ist der Server. Einige APIs, wie SOAP oder XML-RPC, zwingen den Entwicklern ein strenges Framework auf. Entwickler können REST-APIs jedoch mit praktisch jeder Programmiersprache entwickeln und eine Vielzahl von Datenformaten unterstützen. Die einzige Voraussetzung ist, dass sie den folgenden sechs REST-Designprinzipien entsprechen, die auch als architektonische Einschränkungen bezeichnet werden.

Einheitliche Schnittstelle

Alle API-Anfragen für dieselbe Ressource sollten gleich aussehen, unabhängig davon, woher die Anfrage kommt. Die REST-API sollte sicherstellen, dass dieselben Daten, wie z. B. der Name oder die E-Mail-Adresse eines Benutzers, nur zu einem URI (Uniform Resource Identifier) gehören. Die Ressourcen sollten nicht zu groß sein, aber alle Informationen enthalten, die der Kunde benötigen könnte.  

Client-Server-Entkopplung

Beim Design von REST-APIs müssen Client- und Serveranwendungen völlig unabhängig voneinander sein. Die einzige Information, die die Clientanwendung kennen sollte, ist der URI der angeforderten Ressource. Sie kann nicht auf andere Weise mit der Serveranwendung interagieren. Ebenso sollte eine Serveranwendung die Clientanwendung nicht verändern und ihr lediglich die angeforderten Daten über HTTP übermitteln. Zum einen bedeutet dies, dass Sie Ihre Clientanwendungen frei verändern können, ohne dass dadurch Änderungen an der Serveranwendung vorgenommen werden. Gleiches gilt auch im umgekehrten Sinne. So lässt sich sicherstellen, dass selbst umfassende Änderungen am Server oder Client keine Kompatibilitätsprobleme verursachen, solange die eigentliche Schnittstelle unangetastet bleibt. Dies führt zu deutlich mehr Flexibilität bei der Entwicklung sämtlicher Komponenten.

Zustandslosigkeit

REST-APIs sind zustandslos. Das bedeutet, dass jede Anfrage alle Informationen enthalten muss, die für ihre Bearbeitung notwendig sind. Mit anderen Worten: REST-APIs erfordern keine serverseitigen Sitzungen. Serveranwendungen dürfen keine Daten speichern, die mit einer Client-Anfrage zusammenhängen. Dies bedeutet beispielsweise, dass Sie nicht zuerst eine Anfrage stellen können, die Sie authentifiziert, um dann im Anschluss mit einer weiteren Anfrage bestimmte Daten ausgeben zu lassen. Stattdessen stellen Sie eine einzelne Anfrage, um sich zu authentifizieren und die gewünschten Daten zu erhalten. Dies reduziert Sicherheits- und Ausfallrisiken und umgeht zudem serverseitigen Speicherbedarf, der durch eine Sitzungsverwaltung entstehen würde.

Cachefähigkeit

Wenn möglich, sollten die Ressourcen auf der Client- oder Serverseite gecacht werden können. Die Serverantworten müssen auch Informationen darüber enthalten, ob das Caching für die gelieferte Ressource erlaubt ist. Ziel ist es, die Leistung auf der Client-Seite zu verbessern und gleichzeitig die Skalierbarkeit auf der Serverseite zu erhöhen. Dadurch wird die Notwendigkeit einer konstanten Kommunikation zwischen Client und Server deutlich reduziert, was besonders in Anbetracht der Zustandslosigkeit einen massiven Effizienz- und Geschwindigkeitsvorteil mit sich bringt. Besonders praktisch: Der Server gibt an, wie lange die abgefragten Daten im Cache gespeichert werden können, um auf diese Weise beispielsweise einen Rhythmus für Aktualisierungen festzulegen und so die optimale Balance zwischen Leistung und Aktualität der Daten zu finden.

Mehrschichtige Systemarchitektur

Bei REST-APIs durchlaufen die Aufrufe und Antworten verschiedene Schichten. Hier gilt die Faustregel, dass man nicht davon ausgehen sollte, dass die Client- und Serveranwendungen direkt miteinander verbunden sind. Bei der Kommunikation kann es eine Reihe verschiedener Zwischenstufen geben. REST-APIs müssen so konzipiert sein, dass weder der Client noch der Server erkennen kann, ob er mit der Endanwendung oder einer zwischengeschalteten Stelle kommuniziert. Basierend auf der mehrschichtigen Architektur lassen sich unterschiedliche Frameworks erstellen, bei denen einzelne Schichten mit verschiedenen Funktionen zusammenarbeiten. So wird die Arbeit mit REST-APIs besonders flexibel und ermöglicht zudem die Implementierung zusätzlicher Sicherheitsschichten.

On-Demand-Code (optional)

REST-APIs senden in der Regel statische Ressourcen. In bestimmten Fällen können die Antworten jedoch auch ausführbaren Code enthalten (z. B. Java-Applets). Hier sollte der Code nur bei Bedarf ausgeführt werden, um Sicherheitsrisiken aufgrund von unerwünschtem Code zu vermeiden. Generell wird diese Funktion aktuell aber eher selten genutzt.

So funktionieren REST-APIs

REST-APIs kommunizieren über HTTP-Anfragen, um Standard-Datenbankfunktionen wie das Erstellen, Lesen, Aktualisieren und Löschen von Datensätzen (auch als „CRUD“ für Creating, Reading, Updating und Deleting bekannt) innerhalb einer Ressource durchzuführen.

Eine REST-API kann zum Beispiel eine GET-Anfrage verwenden, um einen Datensatz abzurufen. Eine POST-Anfrage erstellt einen neuen Datensatz. Eine PUT-Anfrage aktualisiert einen Datensatz, und eine DELETE-Anfrage löscht einen Datensatz. In API-Aufrufen können alle HTTP-Methoden verwendet werden. Eine gut konzipierte REST-API ist vergleichbar mit einer Website, die in einem Webbrowser mit integrierter HTTP-Funktionalität läuft.

Der Zustand einer Ressource zu einem bestimmten Zeitpunkt bzw. Zeitstempel wird als Ressourcendarstellung bezeichnet. Diese Informationen können einem Client in praktisch jedem Format geliefert werden, einschließlich JavaScript Object Notation (JSON), HTML, XLT, Python, PHP oder einfachem Text. JSON ist für diesen Zweck beliebt, weil es sowohl recht einfach von Menschen als auch von Maschinen gelesen werden kann und von der Programmiersprache unabhängig ist.

Anfrage-Header und Parameter sind bei REST-API-Aufrufen ebenfalls von Bedeutung, da sie wichtige Identifizierungsinformationen wie Metadaten, Berechtigungen, URIs, Caching, Cookies und mehr enthalten. Anfrage-Header und Antwort-Header werden in gut konzipierten REST-APIs zusammen mit den herkömmlichen HTTP-Statuscodes verwendet.

Best Practices für REST-APIs

Obwohl Flexibilität ein großer Vorteil des REST-API-Designs ist, kommt es durch diese auch schneller zur Entwicklung einer fehlerhaften oder schlecht funktionierenden API. Aus diesem Grund folgen professionelle Entwickler Best Practices in REST-API-Spezifikationen.

Die OpenAPI-Spezifikation (OAS) legt eine Schnittstelle fest, die eine API so beschreibt, dass jeder Entwickler oder jede Anwendung sie erkennen und ihre Parameter und Funktionen vollständig verstehen kann. Diese Informationen umfassen verfügbare Endgeräte, zulässige Operationen für jedes Endgerät, Operationsparameter, Authentifizierungsmethoden und mehr. Die neueste Version, OAS3 (Link befindet sich außerhalb von ibm.com), enthält praktische Tools wie den OpenAPI Generator, mit dem Sie API-Clients und Server-Stubs in verschiedenen Programmiersprachen erstellen können.

Die Absicherung einer REST-API beginnt ebenfalls mit branchenüblichen Best Practices. Verwenden Sie Hashing-Algorithmen für die Passwortsicherheit und HTTPS für die sichere Datenübertragung. Ein Autorisierungs-Framework wie OAuth 2.0 (Link befindet sich außerhalb von ibm.com) kann dabei helfen, die Berechtigungen von Drittanbieteranwendungen zu begrenzen.

Mithilfe eines Zeitstempels im HTTP-Header kann eine API auch jede Anfrage ablehnen, die nach einem bestimmten Zeitraum eingeht. Parametervalidierung und JSON Web Tokens sind weitere Möglichkeiten, um sicherzustellen, dass nur autorisierte Clients auf die API zugreifen können.  

Weiterführende Lösungen
IBM API Connect

Erstellen, verwalten, sichern, sozialisieren und monetarisieren Sie APIs während ihres gesamten Lebenszyklus mit einer konstanten und intuitiven Erfahrung, preisgekrönten Design-Tools und integrierten KI-Funktionen.

 

API Connect entdecken
iPaaS-Lösungen

Sorgen Sie für Konnektivität für all Ihre Anwendungen und Daten mit flexiblen Tools für die Anwendungsintegration, Datenintegration, B2B-Integration und Prozessautomatisierung.

Erkunden Sie iPaaS-Lösungen
Integrationslösungen

Verbinden Sie Anwendungen und Systeme schnell und sicher, um kritische Daten freizuschalten, Prozesse zu automatisieren und Geschäftspotenziale freizusetzen.

Erkunden Sie Integrationslösungen
Ressourcen Was ist eine API?

Erfahren Sie, wie Anwendungsprogrammierschnittstellen (APIs) einen einfachen und sichereren Austausch von Daten und Funktionalitäten zwischen Anwendungen ermöglichen und dadurch die Softwareentwicklung und Innovation vereinfachen und vorantreiben.

Was ist API Management?

Erfahren Sie mehr über API Management und wie eine einheitliche API Management-Plattform Ihr Unternehmen bei der Skalierung unterstützen kann.

Gartner Critical Capabilities 2023

Lesen Sie den Gartner®-Bericht „Critical Capabilities for Full Lifecycle API Management Report 2023“, um mehr darüber zu erfahren, warum Gartner IBM als führenden Anbieter ausgezeichnet hat.

Machen Sie den nächsten Schritt

Verwenden Sie IBM API Connect, um Unternehmens-APIs über ihre gesamten Lebenszyklen hinweg zu sichern und zu verwalten. Es hilft Ihnen und Ihren Kunden, Unternehmens-APIs konsistent zu erstellen, zu verwalten, zu sichern, zu sozialisieren und zu monetarisieren, und ist ebenfalls als hoch skalierbare API Management-Plattform auf IBM Marketplace und AWS verfügbar.

API Connect entdecken Buchen Sie eine Live-Demo